Platform Explorer / Nuxeo Platform 2021.7

Extension point layouts

Documentation

A layout is a group of widgets that defines the rendering of a document in a given mode.

Default mode values are:

- view: the view mode;

- edit: the edit mode;

- create: the create mode;

- any: any mode; this is the default value in case no value is given for a specific mode. When applying to lists of values, values given for this mode will be merged with values given for the specific mode.

A specific mode is also accepted when specifying a widget mode: "hidden". It is used to avoid rendering the widget at all.

Layout properties :

- name: the layout name; this is an identifier for this layout to the layout service and it can be used in a document type definition.

- templates: a template can be provided to control the layout rendering. Different layouts can be used given the mode. The test for the layout mode can also be done in the template itself.

- properties: map of properties that will apply to the layout in a given mode.

- rows/row: rows describe the organization of widgets within the layout. Several widgets can be placed in the same row. When using the default layout template, a table is used to display each row in a table row, and widgets at the same row will be displayed on different columns in this row.

- columns/column: aliases for rows/row, which is more intuitive when defining layouts representing a table line.

- widgets: widgets with names used in the layout rows configuration. They can hold specific properties given the widget type.

Widget generic properties:

- name: this is the widget identifier within this layout; it can be used to reference this widget in the layout rows.

- type: the widget type defines how the widget will be displayed in a given mode.

- labels: labels to use for the widget in a given mode.

- helpLabels: help labels to use for the widget in a given mode.

- widgetModes: mode to use for this widget given the layout/parent widget (used to override the parent mode) ; can be useful, for instance, to state that a field will only be displayed as "read-only" whatever the layout mode.

- translated: true or false, defines if the widget labels and help labels have to be translated (in case these labels should match jsf messages).

- fields: fields that will be taken into account when displaying/editing a document field.

- properties: map of properties that will apply to the jsf component built in a given mode by the widget type. For instance, in a text widget, all properties defined in the view mode will be dealt as attributes on a <h:outputText /> tag, and properties defined in the edit mode will be dealt as attributes on a <h:inputText /> tag.

- subWidgets: list of sub widgets to use provided the widget type knows how to handle them. each sub widget definition is like a widget definition.

Example of layout using default widget types:

    <layout name="heading">
        <templates>
            <template mode="any">
              /layouts/layout_default_template.xhtml
            </template>
        </templates>
        <properties mode="any">
            <property name="foo">bar</property>
        </properties>
        <rows>
            <row>
                <widget>title</widget>
            </row>
            <row>
                <widget>description</widget>
            </row>
        </rows>
        <widget name="title" type="text">
            <labels>
                <label mode="any">title</label>
            </labels>
            <translated>true</translated>
            <fields>
                <field>dc:title</field>
            </fields>
            <properties mode="edit">
                <property name="required">true</property>
            </properties>
            <properties mode="create">
                <property name="required">true</property>
            </properties>
        </widget>
        <widget name="description" type="textarea">
            <labels>
                <label mode="any">description</label>
            </labels>
            <translated>true</translated>
            <fields>
                <field>dc:description</field>
            </fields>
        </widget>
    </layout>

Contribution Descriptors

  • Class: org.nuxeo.ecm.platform.forms.layout.descriptors.LayoutDescriptor

Existing Contributions

Contributions are presented in the same order as the registration order on this extension point. This order is displayed before the contribution name, in brackets.

  • nuxeo-admin-center-jsf-2021.7.jar /OSGI-INF/layout-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="fullauditsearch">
          <templates>
            <template mode="any">
              /layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>startDate</widget>
              <widget>endDate</widget>
            </row>
            <row>
              <widget>eventId</widget>
              <widget>eventCategory</widget>
            </row>
            <row>
              <widget>userId</widget>
            </row>
          </rows>
          <widget name="startDate" type="datetime">
            <labels>
              <label mode="any">label.audit.startDate</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>bas:startDate</field>
            </fields>
            <widgetModes>
              <mode value="create">hidden</mode>
            </widgetModes>
          </widget>
          <widget name="endDate" type="datetime">
            <labels>
              <label mode="any">label.audit.endDate</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>bas:endDate</field>
            </fields>
            <widgetModes>
              <mode value="create">hidden</mode>
            </widgetModes>
          </widget>
          <widget name="eventId" type="selectManyDirectory">
            <labels>
              <label mode="any">label.performedAction</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>bas:eventIds</field>
            </fields>
            <properties mode="any">
              <property name="directoryName">eventTypes</property>
              <property name="localize">true</property>
            </properties>
          </widget>
          <widget name="eventCategory" type="selectOneDirectory">
            <labels>
              <label mode="any">label.category</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>bas:eventCategory</field>
            </fields>
            <properties mode="any">
              <property name="directoryName">eventCategories</property>
              <property name="localize">true</property>
            </properties>
          </widget>
          <widget name="userId" type="singleUserSuggestion">
            <labels>
              <label mode="any">label.username</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>bas:principalName</field>
            </fields>
            <widgetModes>
              <mode value="create">hidden</mode>
            </widgetModes>
            <properties mode="any">
              <property name="userSuggestionSearchType">USER_TYPE</property>
            </properties>
          </widget>
        </layout>
    
        <!-- TODO: define global widgets to be shared with event logs displayed in document
          tabs -->
        <layout name="event_listing">
          <templates>
            <template mode="any">/layouts/layout_listing_ajax_template.xhtml
            </template>
            <template mode="csv">/layouts/layout_listing_csv_template.xhtml
            </template>
            <template mode="pdf">/layouts/layout_listing_pdf_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="showListingHeader">true</property>
            <property name="showRowEvenOddClass">true</property>
          </properties>
          <columns>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">eventId</property>
              </properties>
              <widget>eventId</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">log.eventDate</property>
              </properties>
              <widget>eventDate</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">log.principalName</property>
              </properties>
              <widget>username</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">log.category</property>
              </properties>
              <widget>eventCategory</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>eventDoc</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>eventComment</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>eventLC</widget>
            </column>
          </columns>
          <widget name="eventId" type="text">
            <labels>
              <label mode="any">label.performedAction</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data.eventId</field>
            </fields>
            <properties mode="any">
              <property name="localize">true</property>
            </properties>
          </widget>
          <widget name="eventDate" type="datetime">
            <labels>
              <label mode="any">label.date</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data.eventDate</field>
            </fields>
            <properties widgetMode="any">
              <property name="pattern">#{nxu:basicDateAndTimeFormatter()}</property>
              <property name="timezone">#{timeZone}</property>
            </properties>
            <properties mode="csv">
              <property name="csv_formatMask">#{nxu:basicDateFormatter()}</property>
              <property name="csv_forceType">date</property>
            </properties>
          </widget>
          <widget name="username" type="text">
            <labels>
              <label mode="any">label.username</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data.principalName</field>
            </fields>
          </widget>
          <widget name="eventCategory" type="text">
            <labels>
              <label mode="any">label.category</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data:category</field>
            </fields>
            <properties mode="any">
              <property name="localize">true</property>
            </properties>
          </widget>
          <widget name="eventDoc" type="template">
            <labels>
              <label mode="any">label.document</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /widgets/auditdoc_widget_template.xhtml
              </property>
            </properties>
          </widget>
          <widget name="eventComment" type="text">
            <labels>
              <label mode="any">label.comment</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data.comment</field>
            </fields>
          </widget>
          <widget name="eventLC" type="text">
            <labels>
              <label mode="any">label.lifecycle</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data.docLifeCycle</field>
            </fields>
            <properties mode="any">
              <property name="localize">true</property>
            </properties>
          </widget>
        </layout>
    
        <!-- TODO: debug/dev mode -->
        <layout name="admin_setup_main">
          <templates>
            <template mode="any">
              /incl/sysinfo/setup_layout_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="label">label.setup.table.title.mainSetup</property>
          </properties>
          <rows>
            <row>
              <widget>url</widget>
            </row>
            <row>
              <widget>product.name</widget>
            </row>
            <row>
              <widget>product.version</widget>
            </row>
            <row>
              <widget>bind.address</widget>
            </row>
            <row>
              <widget>nuxeo.conf</widget>
            </row>
            <row>
              <widget>data.dir</widget>
            </row>
            <row>
              <widget>log.dir</widget>
            </row>
            <row>
              <widget>org.nuxeo.dev</widget>
            </row>
            <row>
              <widget>dbtemplate</widget>
            </row>
            <row>
              <widget>database_ajax_decorator</widget>
            </row>
            <row>
              <widget>chooseDirectoryType</widget>
            </row>
            <row>
              <widget>ldap_ajax_decorator</widget>
            </row>
          </rows>
          <widget name="url" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.url</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.url']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="product.name" type="text">
            <labels>
              <label mode="any">label.setup.org.nuxeo.ecm.product.name</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['org.nuxeo.ecm.product.name']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="product.version" type="text">
            <labels>
              <label mode="any">label.setup.org.nuxeo.ecm.product.version</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['org.nuxeo.ecm.product.version']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="bind.address" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.bind.address</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.bind.address']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="nuxeo.conf" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.conf</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.conf']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="data.dir" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.data.dir</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.data.dir']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="log.dir" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.log.dir</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.log.dir']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="org.nuxeo.dev" type="template">
            <labels>
              <label mode="any">label.setup.nuxeo.org.nuxeo.dev</label>
            </labels>
            <helpLabels>
              <label mode="any">label.setup.nuxeo.org.nuxeo.dev.help</label>
            </helpLabels>
            <translated>true</translated>
            <fields>
              <field>['org.nuxeo.dev']</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/dev_mode_widget_template.xhtml
              </property>
            </properties>
          </widget>
          <widget name="dbtemplate" type="template">
            <labels>
              <label mode="any">label.setup.database.templates</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.dbtemplate']</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/database_chooser_widget_template.xhtml
              </property>
              <property name="reRender">database_ajaxPanel</property>
              <property name="ajaxSingle">true</property>
            </properties>
          </widget>
          <widget name="database_ajax_decorator" type="template">
            <handlingLabels>true</handlingLabels>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/database_ajax_panel.xhtml
              </property>
              <property name="ajaxPanelId">database_ajaxPanel</property>
              <!-- use a 'rendered' property instead of playing with the
                subwidget mode otherwise proxy selection misbehaves after
                first non-default database
                selection -->
              <property name="rendered">
                #{value['nuxeo.dbtemplate']!='default' and value['nuxeo.dbtemplate']!='mongodb'}
              </property>
            </properties>
            <subWidgets>
              <widget name="database" type="layout">
                <properties mode="any">
                  <property name="name">admin_setup_database</property>
                </properties>
              </widget>
            </subWidgets>
          </widget>
          <widget name="chooseDirectoryType" type="template">
            <labels>
              <label mode="any">label.setup.directory.type</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>#{setupWizardAction.directoryType}</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/directory_chooser_widget_template.xhtml
              </property>
              <property name="reRender">ldap_ajaxPanel</property>
              <property name="ajaxSingle">true</property>
            </properties>
          </widget>
          <widget name="ldap_ajax_decorator" type="template">
            <handlingLabels>true</handlingLabels>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/database_ajax_panel.xhtml
              </property>
              <property name="ajaxPanelId">ldap_ajaxPanel</property>
              <property name="rendered">
                #{setupWizardAction.directoryType != 'default'}
              </property>
            </properties>
            <subWidgets>
              <widget name="directories" type="layout">
                <properties mode="any">
                  <property name="name">admin_setup_directories</property>
                </properties>
              </widget>
              <widget name="directories_group" type="layout">
                <properties mode="any">
                  <property name="name">admin_setup_directories_group</property>
                </properties>
              </widget>
              <widget name="directories_extra" type="layout">
                <properties mode="any">
                  <property name="name">admin_setup_directories_extra</property>
                </properties>
              </widget>
            </subWidgets>
          </widget>
    
        </layout>
    
        <layout name="admin_setup_database">
          <templates>
            <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="label">label.setup.table.title.dataBase</property>
          </properties>
          <rows>
            <row>
              <widget>dbName</widget>
            </row>
            <row>
              <widget>dbUser</widget>
            </row>
            <row>
              <widget>dbPwd</widget>
            </row>
            <row>
              <widget>dbHost</widget>
            </row>
            <row>
              <widget>dbPort</widget>
            </row>
            <row>
              <widget>dbMinPoolSize</widget>
            </row>
            <row>
              <widget>dbMaxPoolSize</widget>
            </row>
            <row>
              <widget>vcsMinPoolSize</widget>
            </row>
            <row>
              <widget>vcsMaxPoolSize</widget>
            </row>
            <row>
              <widget>checkDatabaseParameters</widget>
            </row>
          </rows>
          <widget name="dbName" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.db.name</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.db.name']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="dbUser" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.db.user</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.db.user']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="dbPwd" type="secret">********<labels>
              <label mode="any">label.setup.nuxeo.db.password</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.db.password']</field>
            </fields>
          </widget>
          <widget name="dbHost" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.db.host</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.db.host']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="dbPort" type="int">
            <labels>
              <label mode="any">label.setup.nuxeo.db.port</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.db.port']</field>
            </fields>
            <properties mode="edit">
              <property name="size">5</property>
              <property name="maxlength">5</property>
            </properties>
          </widget>
          <widget name="dbMinPoolSize" type="int">
            <labels>
              <label mode="any">label.setup.nuxeo.db.min-pool-size</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.db.min-pool-size']</field>
            </fields>
            <properties mode="edit">
              <property name="size">4</property>
            </properties>
          </widget>
          <widget name="dbMaxPoolSize" type="int">
            <labels>
              <label mode="any">label.setup.nuxeo.db.max-pool-size</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.db.max-pool-size']</field>
            </fields>
            <properties mode="edit">
              <property name="size">4</property>
            </properties>
          </widget>
          <widget name="vcsMinPoolSize" type="int">
            <labels>
              <label mode="any">label.setup.nuxeo.vcs.min-pool-size</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.vcs.min-pool-size']</field>
            </fields>
            <properties mode="edit">
              <property name="size">4</property>
            </properties>
          </widget>
          <widget name="vcsMaxPoolSize" type="int">
            <labels>
              <label mode="any">label.setup.nuxeo.vcs.max-pool-size</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.vcs.max-pool-size']</field>
            </fields>
            <properties mode="edit">
              <property name="size">4</property>
            </properties>
          </widget>
          <widget name="checkDatabaseParameters" type="template">
            <labels>
              <label mode="any"/>
            </labels>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/database_check_parameters_template.xhtml
              </property>
            </properties>
          </widget>
        </layout>
    
        <layout name="admin_setup_directories">
          <templates>
            <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="label">label.setup.table.title.directories</property>
          </properties>
          <rows>
            <row>
              <widget>ldapStorage</widget>
            </row>
            <row>
              <widget>ldapUrl</widget>
              <!-- <widget>checkNetwork</widget> -->
            </row>
            <row>
              <widget>ldapBindDn</widget>
            </row>
            <row>
              <widget>ldapBindPassword</widget>
              <widget>checkAuth</widget>
            </row>
            <row>
              <widget>userLdapSearchBaseDn</widget>
            </row>
            <row>
              <widget>userLdapSearchClass</widget>
            </row>
            <row>
              <widget>userLdapSearchFilter</widget>
            </row>
            <row>
              <widget>userLdapSearchScope</widget>
            </row>
            <row>
              <widget>userLdapReadonly</widget>
            </row>
            <row>
              <widget>mappingUserRdn</widget>
            </row>
            <row>
              <widget>mappingUsername</widget>
            </row>
            <row>
              <widget>mappingPassword</widget>
            </row>
            <row>
              <widget>mappingFirstname</widget>
            </row>
            <row>
              <widget>mappingLastname</widget>
            </row>
            <row>
              <widget>mappingEmail</widget>
            </row>
            <row>
              <widget>mappingCompany</widget>
            </row>
          </rows>
          <widget name="ldapStorage" type="template">
            <labels>
              <label mode="any">label.setup.nuxeo.users.storage</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.user.group.storage']</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/ldap_storage_widget_template.xhtml
              </property>
              <property name="reRender">ldap_group_ajaxPanel</property>
              <property name="ajaxSingle">true</property>
            </properties>
          </widget>
          <widget name="multiStorage" type="selectOneListbox">
            <labels>
              <label mode="any">label.setup.nuxeo.users.storage</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.user.group.storage']</field>
            </fields>
            <selectOptions>
              <option itemLabel="Multidirectory for users and groups" itemValue="multiUserGroup"/>
              <option itemLabel="Multidirectory for users and SQL groups" itemValue="multiUserSqlGroup"/>
              <option itemLabel="LDAP users and multidirectory for groups" itemValue="ldapUserMultiGroup"/>
            </selectOptions>
            <properties widgetMode="any">
              <property name="rendered">
                #{setupWizardAction.directoryType == 'multi'}
              </property>
            </properties>
          </widget>
          <widget name="ldapUrl" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.url</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.url']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="ldapBindDn" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.binddn</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.binddn']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="ldapBindPassword" type="secret">********<labels>
              <label mode="any">label.setup.nuxeo.ldap.bindpassword</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.bindpassword']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
              <property name="redisplay">true</property>
            </properties>
          </widget>
          <widget name="ldapRetries" type="int">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.retries</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.retries']</field>
            </fields>
            <properties mode="edit">
              <property name="size">5</property>
              <property name="maxlength">2</property>
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="userLdapSearchBaseDn" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.user.searchbasedn</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.searchBaseDn']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="userLdapSearchClass" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.user.searchclass</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.searchClass']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="userLdapSearchFilter" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.user.searchfilter</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.searchFilter']</field>
            </fields>
          </widget>
          <widget name="userLdapSearchScope" type="selectOneListbox">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.user.searchscope</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.searchScope']</field>
            </fields>
            <selectOptions>
              <option itemLabel="onelevel" itemValue="onelevel"/>
              <option itemLabel="subtree" itemValue="subtree"/>
            </selectOptions>
            <properties widgetMode="any">
              <property name="size">1</property>
            </properties>
          </widget>
          <widget name="userLdapReadonly" type="checkbox">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.user.readonly</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.readonly']</field>
            </fields>
          </widget>
          <widget name="mappingUserRdn" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.user.rdn</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.mapping.rdn']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="mappingUsername" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.user.name</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.mapping.username']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="mappingPassword" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.user.password</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.mapping.password']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="mappingFirstname" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.user.firstname</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.mapping.firstname']</field>
            </fields>
          </widget>
          <widget name="mappingLastname" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.user.lastname</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.mapping.lastname']</field>
            </fields>
          </widget>
          <widget name="mappingEmail" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.user.email</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.mapping.email']</field>
            </fields>
          </widget>
          <widget name="mappingCompany" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.user.company</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.mapping.company']</field>
            </fields>
          </widget>
          <widget name="checkNetwork" type="template">
            <labels>
              <label mode="any"/>
            </labels>
            <widgetModes>
              <mode value="edit">#{setupWizardAction.directoryType != 'default' ? 'edit' : 'hidden'}</mode>
            </widgetModes>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/directory_check_network_parameters_template.xhtml
              </property>
            </properties>
          </widget>
          <widget name="checkAuth" type="template">
            <labels>
              <label mode="any"/>
            </labels>
            <widgetModes>
              <mode value="edit">#{setupWizardAction.directoryType != 'default' ? 'edit' : 'hidden'}</mode>
            </widgetModes>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/directory_check_auth_parameters_template.xhtml
              </property>
            </properties>
          </widget>
        </layout>
    
        <layout name="admin_setup_directories_group">
          <templates>
            <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="ajaxPanelId">ldap_group_ajaxPanel</property>
            <property name="rendered">
              #{setupWizardAction.needGroupConfiguration}
            </property>
          </properties>
          <rows>
            <row>
              <widget>groupLdapSearchBaseDn</widget>
            </row>
            <row>
              <widget>groupLdapSearchFilter</widget>
            </row>
            <row>
              <widget>groupLdapSearchScope</widget>
            </row>
            <row>
              <widget>groupLdapReadonly</widget>
            </row>
            <row>
              <widget>mappingGroupRdn</widget>
            </row>
            <row>
              <widget>mappingGroupname</widget>
            </row>
            <row>
              <widget>mappingGrouplabel</widget>
            </row>
            <row>
              <widget>mappingStaticMembers</widget>
            </row>
            <row>
              <widget>mappingDynamicMembers</widget>
            </row>
          </rows>
          <widget name="groupLdapSearchBaseDn" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.group.searchbasedn</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.searchBaseDn']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="groupLdapSearchFilter" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.group.searchfilter</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.searchFilter']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="groupLdapSearchScope" type="selectOneListbox">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.group.searchscope</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.searchScope']</field>
            </fields>
            <selectOptions>
              <option itemLabel="onelevel" itemValue="onelevel"/>
              <option itemLabel="subtree" itemValue="subtree"/>
            </selectOptions>
            <properties widgetMode="any">
              <property name="size">1</property>
            </properties>
          </widget>
          <widget name="groupLdapReadonly" type="checkbox">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.group.readonly</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.readonly']</field>
            </fields>
          </widget>
          <widget name="mappingGroupRdn" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.group.rdn</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.mapping.rdn']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="mappingGroupname" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.group.name</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.mapping.name']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="mappingGrouplabel" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.group.label</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.mapping.label']</field>
            </fields>
          </widget>
          <widget name="mappingStaticMembers" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.group.members.static</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.mapping.members.staticAttributeId']</field>
            </fields>
          </widget>
          <widget name="mappingDynamicMembers" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.group.members.dynamic</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.mapping.members.dynamicAttributeId']</field>
            </fields>
          </widget>
        </layout>
    
        <layout name="admin_setup_directories_extra">
          <templates>
            <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="label"/>
          </properties>
          <rows>
            <row>
              <widget>defaultAdministrator</widget>
            </row>
            <row>
              <widget>defaultMembersGroup</widget>
            </row>
            <row>
              <widget>anonymousUser</widget>
            </row>
            <row>
              <widget>emergencyUser</widget>
            </row>
            <row>
              <widget>emergencyUsername</widget>
            </row>
            <row>
              <widget>emergencyPassword</widget>
            </row>
            <row>
              <widget>emergencyFirstname</widget>
            </row>
            <row>
              <widget>emergencyLastname</widget>
            </row>
          </rows>
          <widget name="defaultAdministrator" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.default.admin</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.defaultAdministratorId']</field>
            </fields>
          </widget>
          <widget name="defaultMembersGroup" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.default.membersGroup</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.defaultMembersGroup']</field>
            </fields>
          </widget>
          <widget name="anonymousUser" type="checkbox">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.anonymous.enable</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.user.anonymous.enable']</field>
            </fields>
          </widget>
          <widget name="emergencyUser" type="template">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.default.emergency.enable</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.user.emergency.enable']</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/ajax_checkbox_widget_template.xhtml
              </property>
              <property name="reRender">ldap_ajaxPanel</property>
              <property name="ajaxSingle">true</property>
            </properties>
          </widget>
          <widget name="emergencyUsername" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.default.emergency.username</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.user.emergency.username']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
            <properties widgetMode="any">
              <property name="rendered">
                #{value['nuxeo.user.emergency.enable']}
              </property>
            </properties>
          </widget>
          <widget name="emergencyPassword" type="secret">********<labels>
              <label mode="any">label.setup.nuxeo.ldap.default.emergency.password</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.user.emergency.password']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
              <property name="redisplay">true</property>
            </properties>
            <properties widgetMode="any">
              <property name="rendered">
                #{value['nuxeo.user.emergency.enable']}
              </property>
            </properties>
          </widget>
          <widget name="emergencyFirstname" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.default.emergency.firstname</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.user.emergency.firstname']</field>
            </fields>
            <properties widgetMode="any">
              <property name="rendered">
                #{value['nuxeo.user.emergency.enable']}
              </property>
            </properties>
          </widget>
          <widget name="emergencyLastname" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.default.emergency.lastname</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.user.emergency.lastname']</field>
            </fields>
            <properties widgetMode="any">
              <property name="rendered">
                #{value['nuxeo.user.emergency.enable']}
              </property>
            </properties>
          </widget>
        </layout>
    
        <layout name="admin_choose_proxy">
          <templates>
            <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="label">label.setup.table.title.httpProxy</property>
            <property name="ajaxPanelId">admin_choose_proxy_ajaxPanel</property>
          </properties>
          <rows>
            <row>
              <widget>chooseProxy</widget>
            </row>
            <row>
              <widget>proxy.host</widget>
            </row>
            <row>
              <widget>proxy.port</widget>
            </row>
            <row>
              <widget>proxy.login</widget>
            </row>
            <row>
              <widget>proxy.password</widget>
            </row>
          </rows>
          <widget name="chooseProxy" type="template">
            <labels>
              <label mode="any">label.setup.httpProxy.type</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>#{setupWizardAction.proxyType}</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/proxy_chooser_widget_template.xhtml
              </property>
              <property name="reRender">admin_choose_proxy_ajaxPanel</property>
              <property name="ajaxSingle">true</property>
            </properties>
          </widget>
          <widget name="proxy.host" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.http.proxy.host</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.http.proxy.host']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
            <properties widgetMode="any">
              <!-- use a 'rendered' property instead of playing with the
                subwidget mode otherwise smtp auth misbehaves after
                first non-default proxy type selection -->
              <property name="rendered">
                #{setupWizardAction.proxyType != 'none'}
              </property>
            </properties>
          </widget>
          <widget name="proxy.port" type="int">
            <labels>
              <label mode="any">label.setup.nuxeo.http.proxy.port</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.http.proxy.port']</field>
            </fields>
            <properties mode="edit">
              <property name="size">5</property>
              <property name="maxlength">5</property>
              <property name="required">true</property>
            </properties>
            <properties widgetMode="any">
              <property name="rendered">
                #{setupWizardAction.proxyType != 'none'}
              </property>
            </properties>
          </widget>
          <widget name="proxy.login" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.http.proxy.login</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.http.proxy.login']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
            <properties widgetMode="any">
              <property name="rendered">
                #{setupWizardAction.proxyType ==
                'authenticated'}
              </property>
            </properties>
          </widget>
          <widget name="proxy.password" type="secret">********<labels>
              <label mode="any">label.setup.nuxeo.http.proxy.password</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.http.proxy.password']</field>
            </fields>
            <properties widgetMode="any">
              <property name="rendered">
                #{setupWizardAction.proxyType ==
                'authenticated'}
              </property>
            </properties>
          </widget>
        </layout>
    
        <layout name="admin_setup_mail">
          <templates>
            <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="label">label.setup.table.title.email</property>
            <property name="ajaxPanelId">admin_setup_mail_ajaxPanel</property>
          </properties>
          <rows>
            <row>
              <widget>eMailSubjectPrefix</widget>
            </row>
            <row>
              <widget>mailservice.user</widget>
            </row>
            <row>
              <widget>mailservice.password</widget>
            </row>
            <row>
              <widget>mail.store.protocol</widget>
            </row>
            <row>
              <widget>mail.transport.protocol</widget>
            </row>
            <row>
              <widget>mail.store.host</widget>
            </row>
            <row>
              <widget>mail.store.port</widget>
            </row>
            <row>
              <widget>mail.store.user</widget>
            </row>
            <row>
              <widget>mail.store.password</widget>
            </row>
            <row>
              <widget>mail.debug</widget>
            </row>
            <row>
              <widget>mail.transport.host</widget>
            </row>
            <row>
              <widget>mail.transport.port</widget>
            </row>
            <row>
              <widget>mail.transport.auth</widget>
            </row>
            <row>
              <widget>mail.transport.user</widget>
            </row>
            <row>
              <widget>mail.transport.password</widget>
            </row>
            <row>
              <widget>mail.from</widget>
            </row>
            <row>
              <widget>mail.transport.usetls</widget>
            </row>
            <row>
              <widget>mail.user</widget>
            </row>
          </rows>
          <widget name="eMailSubjectPrefix" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.notification.eMailSubjectPrefix
              </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.notification.eMailSubjectPrefix']</field>
            </fields>
          </widget>
          <widget name="mailservice.user" type="text">
            <labels>
              <label mode="any">label.setup.mailservice.user</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mailservice.user']</field>
            </fields>
          </widget>
          <widget name="mailservice.password" type="secret">********<labels>
              <label mode="any">label.setup.mailservice.password</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mailservice.password']</field>
            </fields>
          </widget>
          <widget name="mail.store.protocol" type="text">
            <labels>
              <label mode="any">label.setup.mail.store.protocol</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.store.protocol']</field>
            </fields>
          </widget>
          <widget name="mail.transport.protocol" type="text">
            <labels>
              <label mode="any">label.setup.mail.transport.protocol</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.transport.protocol']</field>
            </fields>
          </widget>
          <widget name="mail.store.host" type="text">
            <labels>
              <label mode="any">label.setup.mail.store.host</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.store.host']</field>
            </fields>
          </widget>
          <widget name="mail.store.port" type="int">
            <labels>
              <label mode="any">label.setup.mail.store.port</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.store.port']</field>
            </fields>
            <properties mode="edit">
              <property name="size">5</property>
              <property name="maxlength">5</property>
              <property name="styleClass">dataInputText</property>
              <property name="required">false</property>
            </properties>
          </widget>
          <widget name="mail.store.user" type="text">
            <labels>
              <label mode="any">label.setup.mail.store.user</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.store.user']</field>
            </fields>
            <properties mode="edit">
              <property name="styleClass">dataInputText</property>
              <property name="required">false</property>
            </properties>
          </widget>
          <widget name="mail.store.password" type="secret">********<labels>
              <label mode="any">label.setup.mail.store.password</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.store.password']</field>
            </fields>
            <properties mode="edit">
              <property name="styleClass">dataInputText</property>
              <property name="required">false</property>
            </properties>
          </widget>
          <widget name="mail.debug" type="checkbox">
            <labels>
              <label mode="any">label.setup.mail.debug</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.debug']</field>
            </fields>
          </widget>
          <widget name="mail.transport.host" type="text">
            <labels>
              <label mode="any">label.setup.mail.transport.host</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.transport.host']</field>
            </fields>
            <properties mode="edit">
            </properties>
          </widget>
          <widget name="mail.transport.port" type="int">
            <labels>
              <label mode="any">label.setup.mail.transport.port</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.transport.port']</field>
            </fields>
            <properties mode="edit">
              <property name="size">5</property>
              <property name="maxlength">5</property>
            </properties>
          </widget>
          <widget name="mail.transport.auth" type="template">
            <labels>
              <label mode="any">label.setup.mail.transport.auth</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.transport.auth']</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/ajax_checkbox_widget_template.xhtml
              </property>
              <property name="reRender">admin_setup_mail_ajaxPanel</property>
              <property name="ajaxSingle">true</property>
            </properties>
          </widget>
          <widget name="mail.transport.user" type="text">
            <labels>
              <label mode="any">label.setup.mail.transport.user</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.transport.user']</field>
            </fields>
            <properties widgetMode="any">
              <property name="rendered">
                #{value['mail.transport.auth'] == true}
              </property>
            </properties>
          </widget>
          <widget name="mail.transport.password" type="secret">********<labels>
              <label mode="any">label.setup.mail.transport.password</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.transport.password']</field>
            </fields>
            <properties widgetMode="any">
              <property name="rendered">
                #{value['mail.transport.auth'] == true}
              </property>
            </properties>
          </widget>
          <widget name="mail.from" type="text">
            <labels>
              <label mode="any">label.setup.mail.from</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.from']</field>
            </fields>
          </widget>
          <widget name="mail.transport.usetls" type="checkbox">
            <labels>
              <label mode="any">label.setup.mail.transport.usetls</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.transport.usetls']</field>
            </fields>
          </widget>
          <widget name="mail.user" type="text">
            <labels>
              <label mode="any">label.setup.mail.user</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.user']</field>
            </fields>
          </widget>
        </layout>
    
        <!-- placeholder layout for custom properties -->
        <layout name="admin_setup_custom_properties">
          <templates>
            <template mode="any">
              /incl/sysinfo/setup_layout_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="label">label.setup.table.title.custom</property>
          </properties>
        </layout>
    
        <!-- permissions search -->
        <layout name="permissions_search_filter">
          <templates>
            <template mode="any">
              /layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>username</widget>
            </row>
            <row>
              <widget>creator</widget>
            </row>
            <row>
              <widget>location</widget>
            </row>
            <row>
              <widget>permission</widget>
            </row>
            <row>
              <widget>date_range</widget>
            </row>
            <row>
              <widget>status</widget>
            </row>
            <row>
              <widget>aclName</widget>
            </row>
          </rows>
          <widget name="username" type="multipleUsersSuggestion">
            <labels>
              <label mode="any">label.permissions.userGroup</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>rs:ace_username</field>
            </fields>
          </widget>
          <widget name="creator" type="multipleUsersSuggestion">
            <labels>
              <label mode="any">label.permissions.grantedBy</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>rs:ace_creator</field>
            </fields>
            <properties mode="any">
              <property name="userSuggestionSearchType">USER_TYPE</property>
            </properties>
          </widget>
          <widget name="location" type="multipleDocumentsSuggestion">
            <labels>
              <label mode="any">label.search.locationSearch</label>
            </labels>
            <fields>
              <field>rs:ecm_ancestorIds</field>
            </fields>
            <translated>true</translated>
            <properties mode="any">
              <property name="documentSuggestion_pageProviderName">
                permissions_search_folders
              </property>
            </properties>
          </widget>
          <widget name="permission" type="selectManyListbox">
            <labels>
              <label mode="any">label.permissions.right</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>rs:ace_permission</field>
            </fields>
            <selectOptions>
              <options itemLabel="#{item.label}" itemValue="#{item.value}" value="#{securityActions.getUserVisiblePermissionSelectItems('')}" var="item"/>
            </selectOptions>
          </widget>
          <widget name="date_range" type="datetimeRange">
            <labels>
              <label mode="any">label.permissions.timeFrame</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>rs:ace_begin</field>
              <field>rs:ace_end</field>
            </fields>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputTextDate</property>
              <property name="format">#{nxu:basicDateAndTimeFormatter()}</property>
            </properties>
          </widget>
          <widget name="status" type="template">
            <labels>
              <label mode="any">label.permissions.ace.status</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>#{adminPermissionsActions.selectedACEStatus}</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /widgets/ace_status_widget.xhtml
              </property>
            </properties>
          </widget>
          <widget name="aclName" type="text">
            <labels>
              <label mode="any">label.permissions.search.aclName</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>rs:ace_acl_name</field>
            </fields>
          </widget>
        </layout>
    
        <layout name="permissions_purge_filter">
          <templates>
            <template mode="any">
              /layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>username</widget>
            </row>
            <row>
              <widget>location</widget>
            </row>
          </rows>
          <widget name="username" type="multipleUsersSuggestion">
            <labels>
              <label mode="any">label.permissions.userGroup</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>rs:ace_username</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="location" type="multipleDocumentsSuggestion">
            <labels>
              <label mode="any">label.search.locationSearch</label>
            </labels>
            <fields>
              <field>rs:ecm_ancestorIds</field>
            </fields>
            <translated>true</translated>
            <properties mode="any">
              <property name="documentSuggestion_pageProviderName">
                permissions_search_folders
              </property>
            </properties>
          </widget>
        </layout>
    
        <layout name="permissions_search_listing">
          <templates>
            <template mode="any">/layouts/layout_listing_ajax_template.xhtml
            </template>
            <template mode="csv">/layouts/layout_listing_csv_template.xhtml
            </template>
            <template mode="pdf">/layouts/layout_listing_pdf_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="showListingHeader">true</property>
            <property name="showRowEvenOddClass">true</property>
          </properties>
          <columns>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:title</property>
              </properties>
              <widget>document_title</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">ecm:acl/*1/principal</property>
              </properties>
              <widget>ace_username</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">ecm:acl/*1/permission</property>
              </properties>
              <widget>ace_permission</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">ecm:acl/*1/creator</property>
              </properties>
              <widget>ace_creator</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">ecm:acl/*1/begin</property>
              </properties>
              <widget>ace_begin</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">ecm:acl/*1/end</property>
              </properties>
              <widget>ace_end</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">ecm:acl/*1/status</property>
              </properties>
              <widget>ace_status</widget>
            </column>
          </columns>
          <widget name="document_title" type="listing_id_title_link">
            <labels>
              <label mode="any">label.dublincore.title</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data["ecm:uuid"]</field>
              <field>#{navigationContext.currentServerLocation.name}</field>
              <field>data["dc:title"]</field>
            </fields>
          </widget>
          <widget name="ace_permission" type="text">
            <labels>
              <label mode="any">label.permissions.right</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>#{messages[securityActions.getLabel(layoutValue.data["ecm:acl/*1/permission"])]}</field>
            </fields>
          </widget>
          <widget name="ace_username" type="singleUserSuggestion">
            <labels>
              <label mode="any">label.permissions.userGroup</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data["ecm:acl/*1/principal"]</field>
            </fields>
          </widget>
          <widget name="ace_creator" type="text">
            <labels>
              <label mode="any">label.permissions.grantedBy</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data["ecm:acl/*1/creator"]</field>
            </fields>
          </widget>
          <widget name="ace_begin" type="datetime">
            <labels>
              <label mode="any">label.permissions.from</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data["ecm:acl/*1/begin"].time</field>
            </fields>
            <properties widgetMode="any">
              <property name="pattern">#{nxu:basicDateFormatter()}</property>
            </properties>
            <properties mode="csv">
              <property name="csv_formatMask">#{nxu:basicDateFormatter()}</property>
              <property name="csv_forceType">date</property>
            </properties>
          </widget>
          <widget name="ace_end" type="datetime">
            <labels>
              <label mode="any">label.permissions.to</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data["ecm:acl/*1/end"].time</field>
            </fields>
            <properties widgetMode="any">
              <property name="pattern">#{nxu:basicDateFormatter()}</property>
            </properties>
            <properties mode="csv">
              <property name="csv_formatMask">#{nxu:basicDateFormatter()}</property>
              <property name="csv_forceType">date</property>
            </properties>
          </widget>
          <widget name="ace_status" type="template">
            <labels>
              <label mode="any">label.permissions.ace.status</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data["ecm:acl/*1/status"]</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /widgets/ace_status_widget.xhtml
              </property>
            </properties>
          </widget>
        </layout>
      </extension>
  • nuxeo-admin-center-oauth-2021.7.jar /OSGI-INF/directory-layout-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="oauth2ClientsLayoutAdmin">
          <templates>
            <template mode="any">
              /directory/directoryOAuth_layout_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>clientName</widget>
            </row>
            <row>
              <widget>clientId</widget>
            </row>
            <row>
              <widget>clientSecret</widget>
            </row>
            <row>
              <widget>redirectURIs</widget>
            </row>
            <row>
              <widget>autoGrant</widget>
            </row>
            <row>
              <widget>enabled</widget>
            </row>
    
          </rows>
    
          <widget name="clientName" type="text">
            <labels>
              <label mode="any">label.oauth2.name</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Client.name</field>
            </fields>
            <properties mode="any">
              <property name="help">
                label.oauth2.help.name
              </property>
            </properties>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="clientId" type="text">
            <labels>
              <label mode="any">label.oauth2.clientId</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Client.clientId</field>
            </fields>
            <properties mode="any">
              <property name="help">
                label.oauth2.help.clientId
              </property>
            </properties>
            <properties widgetMode="edit">
              <property name="required">true</property>
              <property name="validator">#{oauth2ClientsActions.validateClientId}</property>
            </properties>
          </widget>
          <widget name="clientSecret" type="text">
            <labels>
              <label mode="any">label.oauth2.clientSecret</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Client.clientSecret</field>
            </fields>
            <properties mode="any">
              <property name="help">
                label.oauth2.help.clientSecret
              </property>
            </properties>
          </widget>
          <widget name="redirectURIs" type="text">
            <labels>
              <label mode="any">label.oauth2.redirectURIs</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Client.redirectURIs</field>
            </fields>
            <properties mode="any">
              <property name="help">
                label.oauth2.help.redirectURIs
              </property>
            </properties>
            <properties widgetMode="edit">
              <property name="required">true</property>
              <property name="validator">#{oauth2ClientsActions.validateRedirectURIs}</property>
              <property name="placeholder">#{messages['label.oauth2.redirectURIs.placeholder']}</property>
            </properties>
          </widget>
          <widget name="autoGrant" type="checkbox">
            <labels>
              <label mode="any">label.oauth2.autoGrant</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Client.autoGrant</field>
            </fields>
            <properties mode="any">
              <property name="help">
                label.oauth2.help.autoGrant
              </property>
            </properties>
          </widget>
          <widget name="enabled" type="checkbox">
            <labels>
              <label mode="any">label.oauth2.enabled</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Client.enabled</field>
            </fields>
          </widget>
        </layout>
    
        <layout name="oauthConsumerLayoutAdmin">
          <templates>
            <template mode="any">
              /directory/directoryOAuth_layout_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>consumerKey</widget>
            </row>
            <row>
              <widget>consumerSecret</widget>
            </row>
            <row>
              <widget>publicKey</widget>
            </row>
            <row>
              <widget>description</widget>
            </row>
            <row>
              <widget>signedFetchSupport</widget>
              <widget>dedicatedLogin</widget>
            </row>
            <row>
              <widget>callbackURL</widget>
            </row>
            <row>
              <widget>allowBypassVerifier</widget>
            </row>
            <row>
              <widget>enabled</widget>
            </row>
    
          </rows>
    
          <widget name="consumerKey" type="text">
            <labels>
              <label mode="any">Consumer Key</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthConsumer.consumerKey</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.consumerKey
              </property>
            </properties>
          </widget>
          <widget name="consumerSecret" type="text">
            <labels>
              <label mode="any">Consumer Secret (HMAC Signature) </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthConsumer.consumerSecret</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.consumerSecret
              </property>
            </properties>
          </widget>
          <widget name="publicKey" type="textarea">
            <labels>
              <label mode="any">Consumer Public Key (RSA Signature) </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthConsumer.publicKey</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.publicKey
              </property>
            </properties>
          </widget>
          <widget name="enabled" type="checkbox">
            <labels>
              <label mode="any">Enabled</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthConsumer.enabled</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.enabled
              </property>
            </properties>
          </widget>
          <widget name="description" type="text">
            <labels>
              <label mode="any">Description</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthConsumer.description</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.description
              </property>
            </properties>
          </widget>
          <widget name="signedFetchSupport" type="template">
            <labels>
              <label mode="any">Allow 2 legged auth</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthConsumer.signedFetchSupport</field>
              <field>oauthConsumer.dedicatedLogin</field>
            </fields>
            <properties mode="any">
            <property name="template">
              /widgets/signedFetch_widget_template.xhtml
            </property>
            <property name="help">
            label.oauth.help.signedFetchSupport
            </property>
            </properties>
          </widget>
          <widget name="callbackURL" type="text">
            <labels>
              <label mode="any">Callback URL</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthConsumer.callbackURL</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.callbackURL
              </property>
            </properties>
          </widget>
          <widget name="allowBypassVerifier" type="checkbox">
            <labels>
              <label mode="any">Allow OAuth verifier check bypass</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthConsumer.allowBypassVerifier</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.enabled
              </property>
            </properties>
          </widget>
    
        </layout>
    
    
        <layout name="oauthServiceProviderLayoutAdmin">
          <templates>
            <template mode="any">
              /directory/directoryOAuth_layout_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>gadgetUrl</widget>
            </row>
            <row>
              <widget>serviceName</widget>
            </row>
            <row>
              <widget>consumerKey</widget>
            </row>
            <row>
              <widget>consumerSecret</widget>
            </row>
            <!--<row>
              <widget>publicKey</widget>
            </row>-->
            <row>
              <widget>description</widget>
            </row>
            <row>
              <widget>requestTokenURL</widget>
            </row>
            <row>
              <widget>userAuthorizationURL</widget>
            </row>
            <row>
              <widget>accessTokenURL</widget>
            </row>
            <row>
              <widget>enabled</widget>
            </row>
          </rows>
    
          <widget name="consumerKey" type="text">
            <labels>
              <label mode="any">Consumer Key</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthServiceProvider.consumerKey</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.consumerKey
              </property>
              <property name="size">60</property>
            </properties>
          </widget>
          <widget name="consumerSecret" type="text">
            <labels>
              <label mode="any">Consumer Secret (HMAC Signature) </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthServiceProvider.consumerSecret</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.consumerSecret
              </property>
              <property name="size">60</property>
            </properties>
          </widget>
          <widget name="publicKey" type="text">
            <labels>
              <label mode="any">Consumer Public Key (RSA Signature) </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthServiceProvider.publicKey</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.publicKey
              </property>
              <property name="size">100</property>
            </properties>
          </widget>
          <widget name="enabled" type="checkbox">
            <labels>
              <label mode="any">Enabled</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthServiceProvider.enabled</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.enabled
              </property>
            </properties>
          </widget>
          <widget name="description" type="text">
            <labels>
              <label mode="any">Description</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthServiceProvider.description</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.description
              </property>
              <property name="size">30</property>
            </properties>
          </widget>
          <widget name="requestTokenURL" type="text">
            <labels>
              <label mode="any">Request Token URL</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthServiceProvider.requestTokenURL</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.requestTokenURL
              </property>
              <property name="size">50</property>
            </properties>
          </widget>
          <widget name="userAuthorizationURL" type="text">
            <labels>
              <label mode="any">Authorization URL</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthServiceProvider.userAuthorizationURL</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.userAuthorizationURL
              </property>
              <property name="size">50</property>
            </properties>
          </widget>
          <widget name="accessTokenURL" type="text">
            <labels>
              <label mode="any">AccessToken URL</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthServiceProvider.accessTokenURL</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.accessTokenURL
              </property>
              <property name="size">50</property>
            </properties>
          </widget>
          <widget name="gadgetUrl" type="text">
            <labels>
              <label mode="any">Gadget URL</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthServiceProvider.gadgetUrl</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.gadgetUrl
              </property>
              <property name="size">50</property>
            </properties>
          </widget>
          <widget name="serviceName" type="text">
            <labels>
              <label mode="any">Service name</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthServiceProvider.serviceName</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.serviceName
              </property>
            </properties>
          </widget>
    
        </layout>
    
    <layout name="oauth2ServiceProviderLayoutAdmin">
          <templates>
            <template mode="any">
              /directory/directoryOAuth_layout_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>serviceName</widget>
            </row>
            <row>
              <widget>description</widget>
            </row>
            <row>
              <widget>clientId</widget>
            </row>
            <row>
              <widget>clientSecret</widget>
            </row>
            <row>
              <widget>authorizationServerURL</widget>
            </row>
            <row>
              <widget>tokenServerURL</widget>
            </row>
            <row>
              <widget>userAuthorizationURL</widget>
            </row>
            <row>
              <widget>scopes</widget>
            </row>
            <row>
              <widget>enabled</widget>
            </row>
          </rows>
    
          <widget name="serviceName" type="text">
            <labels>
              <label mode="any">Service Name</label>
            </labels>
            <fields>
              <field>oauth2ServiceProvider.serviceName</field>
            </fields>
          </widget>
          <widget name="authorizationServerURL" type="text">
            <labels>
              <label mode="any">Authorization Server URL</label>
            </labels>
            <fields>
              <field>oauth2ServiceProvider.authorizationServerURL</field>
            </fields>
            <properties mode="edit">
               <property name="size">50</property>
            </properties>
            <widgetModes>
              <mode value="view_list">hidden</mode>
              <mode value="view_list_and_header">hidden</mode>
            </widgetModes>
          </widget>
          <widget name="tokenServerURL" type="text">
            <labels>
              <label mode="any">Token Server URL</label>
            </labels>
            <fields>
              <field>oauth2ServiceProvider.tokenServerURL</field>
            </fields>
            <properties mode="edit">
               <property name="size">50</property>
            </properties>
            <widgetModes>
              <mode value="view_list">hidden</mode>
              <mode value="view_list_and_header">hidden</mode>
            </widgetModes>
          </widget>
          <widget name="clientId" type="text">
            <labels>
              <label mode="any">ClientID</label>
            </labels>
            <fields>
              <field>oauth2ServiceProvider.clientId</field>
            </fields>
            <properties mode="edit">
               <property name="size">40</property>
            </properties>
            <widgetModes>
              <mode value="view_list">hidden</mode>
              <mode value="view_list_and_header">hidden</mode>
            </widgetModes>
          </widget>
          <widget name="userAuthorizationURL" type="text">
            <labels>
              <label mode="any">User Authorization URL</label>
            </labels>
            <fields>
              <field>oauth2ServiceProvider.userAuthorizationURL</field>
            </fields>
            <properties mode="edit">
               <property name="size">50</property>
            </properties>
            <widgetModes>
              <mode value="view_list">hidden</mode>
              <mode value="view_list_and_header">hidden</mode>
            </widgetModes>
          </widget>
          <widget name="clientSecret" type="text">
            <labels>
              <label mode="any">Client Secret</label>
            </labels>
            <fields>
              <field>oauth2ServiceProvider.clientSecret</field>
            </fields>
            <properties mode="edit">
               <property name="size">60</property>
            </properties>
            <widgetModes>
              <mode value="view_list">hidden</mode>
              <mode value="view_list_and_header">hidden</mode>
            </widgetModes>
          </widget>
          <widget name="scopes" type="text">
            <labels>
              <label mode="any">Scopes</label>
            </labels>
            <fields>
              <field>oauth2ServiceProvider.scopes</field>
            </fields>
            <widgetModes>
              <mode value="view_list">hidden</mode>
              <mode value="view_list_and_header">hidden</mode>
            </widgetModes>
          </widget>
          <widget name="enabled" type="checkbox">
            <labels>
              <label mode="any">Enabled</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2ServiceProvider.enabled</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.enabled
              </property>
            </properties>
          </widget>
          <widget name="description" type="text">
            <labels>
              <label mode="any">Description</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2ServiceProvider.description</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.description
              </property>
            </properties>
          </widget>
    
        </layout>
    
        <layout name="externalGadgetLayoutAdmin">
          <templates>
            <template mode="any">
              /directory/directoryOAuth_layout_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>id</widget>
            </row>
            <row>
              <widget>label</widget>
            </row>
            <row>
              <widget>enabled</widget>
            </row>
            <row>
              <widget>category</widget>
            </row>
            <row>
              <widget>url</widget>
            </row>
          </rows>
    
          <widget name="id" type="text">
            <labels>
              <label mode="any">label.externalGadgetLayoutAdmin.name</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>externalgadget.id</field>
            </fields>
          </widget>
          <widget name="label" type="text">
            <labels>
              <label mode="any">label.externalGadgetLayoutAdmin.label</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>externalgadget.label</field>
            </fields>
          </widget>
          <widget name="enabled" type="template">
            <labels>
              <label mode="any">label.externalGadgetLayoutAdmin.enabled</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>externalgadget.enabled</field>
            </fields>
            <properties mode="any">
            <property name="template">
              /widgets/integer_yes_no_widget_template.xhtml
            </property>
          </properties>
    
          </widget>
          <widget name="category" type="text">
            <labels>
              <label mode="any">label.externalGadgetLayoutAdmin.category</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>externalgadget.category</field>
            </fields>
          </widget>
          <widget name="url" type="text">
            <labels>
              <label mode="any">label.externalGadgetLayoutAdmin.gadgeturl</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>externalgadget.url</field>
            </fields>
          </widget>
    
          <widget name="iconUrl" type="text">
            <labels>
              <label mode="any">label.externalGadgetLayoutAdmin.iconurl</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>externalgadget.iconUrl</field>
            </fields>
          </widget>
    
        </layout>
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
      <layout name="oauthConsumerTokenLayoutAdmin">
          <templates>
            <template mode="any">
              /directory/directoryOAuth_layout_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>appId</widget>
            </row>
            <row>
              <widget>consumerKey</widget>
            </row>
            <row>
              <widget>token</widget>
            </row>
            <row>
              <widget>tokenSecret</widget>
            </row>
            <row>
              <widget>nuxeoLogin</widget>
            </row>
            <row>
              <widget>creationDate</widget>
            </row>
            <row>
              <widget>duration</widget>
            </row>
          </rows>
    
          <widget name="consumerKey" type="text">
            <labels>
              <label mode="any">Consumer Key</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.consumerKey</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.consumerKey
              </property>
            </properties>
          </widget>
    
          <widget name="appId" type="text">
            <labels>
              <label mode="any">AppId (Gadget) </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.appId</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.appId
              </property>
            </properties>
          </widget>
    
          <widget name="token" type="text">
            <labels>
              <label mode="any">OAUth Token </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.token</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.token
              </property>
            </properties>
          </widget>
    
          <widget name="tokenSecret" type="text">
            <labels>
              <label mode="any">OAUth Token Secret</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.tokenSecret</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.tokenSecret
              </property>
            </properties>
          </widget>
    
          <widget name="nuxeoLogin" type="text">
            <labels>
              <label mode="any">Nuxeo Login </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.nuxeoLogin</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.nuxeoLogin
              </property>
            </properties>
          </widget>
    
          <widget name="creationDate" type="datetime">
            <labels>
              <label mode="any">Creation Date </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.creationDate</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.creationDate
              </property>
            </properties>
          </widget>
    
          <widget name="duration" type="int">
            <labels>
              <label mode="any">Duration (in minutes)</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.durationInMinutes</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.durationInMinutes
              </property>
            </properties>
          </widget>
    
        </layout>
    
    
    
    
    
    
      <layout name="oauthProviderTokenLayoutAdmin">
          <templates>
            <template mode="any">
              /directory/directoryOAuth_layout_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>appId</widget>
            </row>
            <row>
              <widget>consumerKey</widget>
            </row>
            <row>
              <widget>token</widget>
            </row>
            <row>
              <widget>tokenSecret</widget>
            </row>
            <row>
              <widget>userId</widget>
            </row>
            <row>
              <widget>creationDate</widget>
            </row>
            <!--<row>
              <widget>duration</widget>
            </row>-->
          </rows>
    
          <widget name="consumerKey" type="text">
            <labels>
              <label mode="any">Consumer Key</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.consumerKey</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.consumerKey
              </property>
            </properties>
          </widget>
    
          <widget name="appId" type="text">
            <labels>
              <label mode="any">AppId (Gadget) </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.appId</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.appId
              </property>
            </properties>
          </widget>
    
          <widget name="token" type="text">
            <labels>
              <label mode="any">OAUth Token </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.token</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.token
              </property>
            </properties>
          </widget>
    
          <widget name="tokenSecret" type="text">
            <labels>
              <label mode="any">OAUth Token Secret</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.tokenSecret</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.tokenSecret
              </property>
            </properties>
            <widgetModes>
               <mode value="list">hidden</mode>
            </widgetModes>
          </widget>
    
          <widget name="userId" type="text">
            <labels>
              <label mode="any">Nuxeo Login </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.clientId</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.nuxeoLogin
              </property>
            </properties>
          </widget>
    
          <widget name="creationDate" type="datetime">
            <labels>
              <label mode="any">Creation Date </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.creationDate</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.creationDate
              </property>
            </properties>
          </widget>
    
          <widget name="duration" type="int">
            <labels>
              <label mode="any">Duration (in minutes)</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.durationInMinutes</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.durationInMinutes
              </property>
            </properties>
          </widget>
    
        </layout>
    
    
      <layout name="oauth2ProviderTokenLayoutAdmin">
          <templates>
            <template mode="any">
              /directory/directoryOAuth_layout_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>id</widget>
            </row>
            <row>
              <widget>serviceName</widget>
            </row>
            <row>
              <widget>nuxeoLogin</widget>
            </row>
            <row>
              <widget>serviceLogin</widget>
            </row>
            <row>
              <widget>creationDate</widget>
            </row>
            <row>
              <widget>isShared</widget>
            </row>
            <row>
              <widget>sharedWith</widget>
            </row>
          </rows>
    
          <widget name="id" type="text">
            <labels>
              <label mode="any">Id</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Token.id</field>
            </fields>
            <widgetModes>
              <mode value="edit">hidden</mode>
            </widgetModes>
          </widget>
          <widget name="serviceName" type="text">
            <labels>
              <label mode="any">Service Name</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Token.serviceName</field>
            </fields>
          </widget>
          <widget name="nuxeoLogin" type="text">
            <labels>
              <label mode="any">Nuxeo Login</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Token.nuxeoLogin</field>
            </fields>
          </widget>
          <widget name="serviceLogin" type="text">
            <labels>
              <label mode="any">Service Login</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Token.serviceLogin</field>
            </fields>
          </widget>
          <widget name="creationDate" type="datetime">
            <labels>
              <label mode="any">Creation Date</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Token.creationDate</field>
            </fields>
          </widget>
          <widget name="isShared" type="checkbox">
            <labels>
              <label mode="any">Shared Token</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Token.isShared</field>
            </fields>
          </widget>
          <widget name="sharedWith" type="multipleUsersSuggestion">
            <labels>
              <label mode="any">User/Groups allowed</label>
            </labels>
            <fields>
              <field>#{oauth2ProvidersTokensActions.sharedWith}</field>
            </fields>
            <properties widgetMode="edit">
              <property name="prefixed">true</property>
              <property name="minChars">3</property>
              <property name="hideHelpLabel">false</property>
            </properties>
            <widgetModes>
              <mode value="view_list">hidden</mode>
              <mode value="view_list_and_header">hidden</mode>
            </widgetModes>
          </widget>
    
        </layout>
    
      </extension>
  • nuxeo-localconf-web-2021.7.jar /OSGI-INF/local-configuration-ui-types.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="ui_types_configuration">
          <templates>
            <template mode="any">
              /layouts/layout_local_configuration_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="layoutTemplateToInclude">/layouts/layout_default_template.xhtml</property>
            <property name="foldableBoxLabel">label.local.configuration.uiTypes</property>
            <property name="localConfigurationFacet">UITypesLocalConfiguration</property>
            <property name="helpLabel">label.local.configuration.uiTypes.info</property>
            <property name="elementsToReRender">local_configuration_panel</property>
          </properties>
          <rows>
            <row>
              <widget>ui_types_selection</widget>
            </row>
            <row>
              <widget>deny_all_types</widget>
            </row>
            <row>
              <widget>default_type</widget>
            </row>
          </rows>
        </layout>
    
      </extension>
  • nuxeo-localconf-web-2021.7.jar /OSGI-INF/local-configuration-theme.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="theme_configuration">
          <templates>
            <template mode="any">
              /layouts/layout_local_configuration_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="layoutTemplateToInclude">
              /layouts/layout_default_template.xhtml
            </property>
            <property name="foldableBoxLabel">
              label.local.configuration.theme
            </property>
            <property name="localConfigurationFacet">
              ThemeLocalConfiguration
            </property>
            <property name="helpLabel">
              label.local.configuration.theme.info
            </property>
            <property name="elementsToReRender">
              local_configuration_panel
            </property>
          </properties>
          <rows>
            <row>
              <widget>flavor_selection</widget>
            </row>
          </rows>
          <widget name="flavor_selection" type="template">
            <labels>
              <label mode="any">
                label.local.configuration.theme.flavorSelection
              </label>
            </labels>
            <helpLabels>
              <label mode="any">
                label.local.configuration.theme.flavorSelection.help
              </label>
            </helpLabels>
            <translated>true</translated>
            <fields>
              <field>themeconf:flavor</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /widgets/select_flavor_widget_template.xhtml
              </property>
            </properties>
          </widget>
        </layout>
    
      </extension>
  • nuxeo-localconf-web-2021.7.jar /OSGI-INF/local-configuration-content-view.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="content_view_configuration">
          <templates>
            <template mode="any">
              /layouts/layout_local_configuration_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="layoutTemplateToInclude">/layouts/layout_default_template.xhtml</property>
            <property name="foldableBoxLabel">label.local.configuration.contentView</property>
            <property name="localConfigurationFacet">ContentViewLocalConfiguration</property>
            <property name="helpLabel">label.local.configuration.contentView.info</property>
            <property name="elementsToReRender">local_configuration_panel</property>
          </properties>
          <rows>
            <row>
              <widget>content_view_selection</widget>
            </row>
          </rows>
        </layout>
    
      </extension>
  • nuxeo-platform-actions-jsf-2021.7.jar /OSGI-INF/action-widgettypes-dev-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <!-- this layout is applied to an action, not a widget -->
        <layout name="action_widget_type_dev_layout" type="devLayout">
          <rows>
            <row>
              <widget>type</widget>
            </row>
            <row>
              <widget>categories</widget>
            </row>
            <row>
              <widget>label</widget>
            </row>
            <row>
              <widget>order</widget>
            </row>
            <row>
              <widget>icon</widget>
            </row>
            <row>
              <widget>accessKey</widget>
            </row>
            <row>
              <widget>confirm</widget>
            </row>
            <row>
              <widget>immediate</widget>
            </row>
            <row>
              <widget>link</widget>
            </row>
            <row>
              <widget>properties</widget>
            </row>
            <row>
              <widget>filterIds</widget>
            </row>
          </rows>
          <widget name="type" type="text">
            <labels>
              <label mode="any">Type</label>
            </labels>
            <fields>
              <field>type</field>
            </fields>
          </widget>
          <widget name="categories" type="text">
            <labels>
              <label mode="any">Action Categories</label>
            </labels>
            <fields>
              <field>categoryList</field>
            </fields>
            <widgetModes>
              <mode value="any">
                #{nxu:test(empty layoutValue.categoryList, 'hidden',
                mode)}
              </mode>
            </widgetModes>
          </widget>
          <widget name="label" type="text">
            <labels>
              <label mode="any">Label</label>
            </labels>
            <fields>
              <field>label</field>
            </fields>
            <widgetModes>
              <mode value="any">
                #{nxu:test(empty layoutValue.label, 'hidden', mode)}
              </mode>
            </widgetModes>
          </widget>
          <widget name="order" type="text">
            <labels>
              <label mode="any">Order</label>
            </labels>
            <fields>
              <field>order</field>
            </fields>
            <widgetModes>
              <mode value="any">
                #{nxu:test(empty layoutValue.order, 'hidden', mode)}
              </mode>
            </widgetModes>
          </widget>
          <widget name="icon" type="text">
            <labels>
              <label mode="any">Icon</label>
            </labels>
            <fields>
              <field>icon</field>
            </fields>
            <widgetModes>
              <mode value="any">
                #{nxu:test(empty layoutValue.icon, 'hidden', mode)}
              </mode>
            </widgetModes>
          </widget>
          <widget name="accessKey" type="text">
            <labels>
              <label mode="any">Access Key</label>
            </labels>
            <fields>
              <field>accessKey</field>
            </fields>
            <widgetModes>
              <mode value="any">
                #{nxu:test(empty layoutValue.accessKey, 'hidden',
                mode)}
              </mode>
            </widgetModes>
          </widget>
          <widget name="confirm" type="text">
            <labels>
              <label mode="any">Confirm</label>
            </labels>
            <fields>
              <field>confirm</field>
            </fields>
            <widgetModes>
              <mode value="any">
                #{nxu:test(empty layoutValue.confirm, 'hidden',
                mode)}
              </mode>
            </widgetModes>
          </widget>
          <widget name="immediate" type="text">
            <labels>
              <label mode="any">Immediate</label>
            </labels>
            <fields>
              <field>immediate</field>
            </fields>
            <widgetModes>
              <mode value="any">
                #{nxu:test(empty layoutValue.immediate, 'hidden',
                mode)}
              </mode>
            </widgetModes>
          </widget>
          <widget name="link" type="text">
            <labels>
              <label mode="any">Link</label>
            </labels>
            <fields>
              <field>link</field>
            </fields>
            <widgetModes>
              <mode value="any">
                #{nxu:test(empty layoutValue.link, 'hidden', mode)}
              </mode>
            </widgetModes>
          </widget>
          <widget name="properties" type="template">
            <labels>
              <label mode="any">Action Properties</label>
            </labels>
            <fields>
              <field>properties</field>
            </fields>
            <widgetModes>
              <mode value="any">
                #{nxu:test(empty layoutValue.properties, 'hidden',
                mode)}
              </mode>
            </widgetModes>
            <properties mode="any">
              <property name="template">
                /widgets/dev/properties_widget_template.xhtml
              </property>
            </properties>
          </widget>
          <widget name="filterIds" type="text">
            <labels>
              <label mode="any">Filters</label>
            </labels>
            <fields>
              <field>filterIds</field>
            </fields>
            <widgetModes>
              <mode value="any">
                #{nxu:test(empty layoutValue.filterIds, 'hidden',
                mode)}
              </mode>
            </widgetModes>
          </widget>
        </layout>
    
      </extension>
  • nuxeo-platform-audit-client-2021.7.jar /OSGI-INF/layout-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="basicauditsearch">
          <templates>
            <template mode="any">
              /layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>startDate</widget>
              <widget>endDate</widget>
            </row>
          </rows>
          <widget name="startDate" type="datetime">
            <labels>
              <label mode="any">label.audit.startDate</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>bas:startDate</field>
            </fields>
            <widgetModes>
              <mode value="create">hidden</mode>
            </widgetModes>
            <properties widgetMode="view">
              <property name="pattern">#{nxu:basicDateAndTimeFormater()}</property>
            </properties>
            <properties widgetMode="edit">
              <property name="format">#{nxu:basicDateAndTimeFormater()}</property>
            </properties>
          </widget>
          <widget name="endDate" type="datetime">
            <labels>
              <label mode="any">label.audit.endDate</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>bas:endDate</field>
            </fields>
            <widgetModes>
              <mode value="create">hidden</mode>
            </widgetModes>
            <properties widgetMode="view">
              <property name="pattern">#{nxu:basicDateAndTimeFormater()}</property>
            </properties>
            <properties widgetMode="edit">
              <property name="format">#{nxu:basicDateAndTimeFormater()}</property>
            </properties>
          </widget>
        </layout>
    
        <layout name="history_listing">
          <templates>
            <template mode="any">
              /layouts/layout_listing_ajax_template.xhtml
            </template>
            <template mode="csv">
              /layouts/layout_listing_csv_template.xhtml
            </template>
            <template mode="pdf">
              /layouts/layout_listing_pdf_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="showListingHeader">true</property>
            <property name="showRowEvenOddClass">true</property>
          </properties>
          <columns>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">log.eventId</property>
              </properties>
              <widget>eventId</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">log.eventDate</property>
              </properties>
              <widget>eventDate</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">log.principalName</property>
              </properties>
              <widget>username</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">log.category</property>
              </properties>
              <widget>eventCategory</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>taskDirective</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>dueDate</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>eventComment</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">log.docLifeCycle</property>
              </properties>
              <widget>eventLC</widget>
            </column>
          </columns>
    
          <widget name="eventId" type="text">
            <labels>
              <label mode="any">label.performedAction</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data.eventId</field>
            </fields>
            <properties mode="any">
              <property name="localize">true</property>
            </properties>
          </widget>
    
          <widget name="eventDate" type="datetime">
            <labels>
              <label mode="any">label.date</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data.eventDate</field>
            </fields>
            <properties widgetMode="any">
              <property name="pattern">
                #{nxu:basicDateAndTimeFormatter()}
              </property>
              <!-- need to check if this is needed -->
              <property name="timezone">
                #{timeZone}
              </property>
            </properties>
            <properties mode="csv">
              <property name="csv_formatMask">#{nxu:basicDateFormatter()}</property>
              <property name="csv_forceType">date</property>
            </properties>
          </widget>
    
          <widget name="username" type="listing_author">
            <labels>
              <label mode="any">label.username</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data.principalName</field>
            </fields>
          </widget>
    
          <widget name="eventCategory" type="text">
            <labels>
              <label mode="any">label.category</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data:category</field>
            </fields>
            <properties mode="any">
              <property name="localize">true</property>
            </properties>
          </widget>
    
          <widget name="taskDirective" type="text">
            <labels>
              <label mode="any">label.workflow.task.directive</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data.extendedInfos['directive'].serializableValue</field>
            </fields>
            <properties mode="any">
              <property name="localize">true</property>
            </properties>
          </widget>
    
          <widget name="dueDate" type="datetime">
            <labels>
              <label mode="any">label.workflow.task.duedate</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data.extendedInfos['dueDate'].serializableValue</field>
            </fields>
            <properties widgetMode="any">
              <property name="pattern">
                #{nxu:basicDateAndTimeFormatter()}
              </property>
              <!-- need to check if this is needed -->
              <property name="timezone">
                #{timeZone}
              </property>
            </properties>
          </widget>
    
          <widget name="eventComment" type="audit_comments">
            <labels>
              <label mode="any">label.comment</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data.preprocessedComment</field>
            </fields>
          </widget>
    
          <widget name="eventLC" type="text">
            <labels>
              <label mode="any">label.lifecycle</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data.docLifeCycle</field>
            </fields>
            <properties mode="any">
              <property name="localize">true</property>
            </properties>
          </widget>
    
        </layout>
    
      </extension>
  • nuxeo-platform-forms-layout-client-2021.7.jar /OSGI-INF/layouts-dev-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="widget_dev_layout" type="devLayout">
          <rows>
            <row>
              <widget>type</widget>
            </row>
            <row>
              <widget>typeCategory</widget>
            </row>
            <row>
              <widget>mode</widget>
            </row>
            <row>
              <widget>dynamic</widget>
            </row>
            <row>
              <widget>properties</widget>
            </row>
            <row>
              <widget>controls</widget>
            </row>
          </rows>
          <widget name="type" type="text">
            <labels>
              <label mode="any">Type</label>
            </labels>
            <fields>
              <field>type</field>
            </fields>
          </widget>
          <widget name="typeCategory" type="text">
            <labels>
              <label mode="any">Type Category</label>
            </labels>
            <fields>
              <field>typeCategory</field>
            </fields>
            <widgetModes>
              <mode value="any">
                #{nxu:test(empty layoutValue.typeCategory or
                layoutValue.typeCategory == 'jsf', 'hidden', mode)}
              </mode>
            </widgetModes>
          </widget>
          <widget name="mode" type="text">
            <labels>
              <label mode="any">Mode</label>
            </labels>
            <fields>
              <field>mode</field>
            </fields>
          </widget>
          <widget name="dynamic" type="text">
            <labels>
              <label mode="any">Dynamic</label>
            </labels>
            <fields>
              <field>dynamic</field>
            </fields>
            <widgetModes>
              <mode value="any">
                #{nxu:test(layoutValue.dynamic, mode, 'hidden')}
              </mode>
            </widgetModes>
          </widget>
          <widget name="properties" type="template">
            <labels>
              <label mode="any">Properties</label>
            </labels>
            <fields>
              <field>properties</field>
            </fields>
            <widgetModes>
              <mode value="any">
                #{nxu:test(empty layoutValue.properties, 'hidden',
                mode)}
              </mode>
            </widgetModes>
            <properties mode="any">
              <property name="template">
                /widgets/dev/properties_widget_template.xhtml
              </property>
            </properties>
          </widget>
          <widget name="controls" type="template">
            <labels>
              <label mode="any">Controls</label>
            </labels>
            <fields>
              <field>controls</field>
            </fields>
            <widgetModes>
              <mode value="any">
                #{nxu:test(empty layoutValue.controls, 'hidden',
                mode)}
              </mode>
            </widgetModes>
            <properties mode="any">
              <property name="template">
                /widgets/dev/properties_widget_template.xhtml
              </property>
            </properties>
          </widget>
        </layout>
    
        <layout name="layout_dev_layout" type="devLayout">
          <rows>
            <row>
              <widget>type</widget>
            </row>
            <row>
              <widget>mode</widget>
            </row>
            <row>
              <widget>dynamic</widget>
            </row>
            <row>
              <widget>properties</widget>
            </row>
          </rows>
          <widget name="type" type="text">
            <labels>
              <label mode="any">Type</label>
            </labels>
            <fields>
              <field>type</field>
            </fields>
            <widgetModes>
              <mode value="any">
                #{nxu:test(empty layoutValue.type, 'hidden', mode)}
              </mode>
            </widgetModes>
          </widget>
          <widget name="mode" type="text">
            <labels>
              <label mode="any">Mode</label>
            </labels>
            <fields>
              <field>mode</field>
            </fields>
          </widget>
          <widget name="dynamic" type="text">
            <labels>
              <label mode="any">Dynamic</label>
            </labels>
            <fields>
              <field>dynamic</field>
            </fields>
            <widgetModes>
              <mode value="any">
                #{nxu:test(layoutValue.dynamic, mode, 'hidden')}
              </mode>
            </widgetModes>
          </widget>
          <widget name="properties" type="template">
            <labels>
              <label mode="any">Properties</label>
            </labels>
            <fields>
              <field>properties</field>
            </fields>
            <widgetModes>
              <mode value="any">
                #{nxu:test(empty layoutValue.properties, 'hidden',
                mode)}
              </mode>
            </widgetModes>
            <properties mode="any">
              <property name="template">
                /widgets/dev/properties_widget_template.xhtml
              </property>
            </properties>
          </widget>
        </layout>
    
      </extension>
  • nuxeo-platform-login-token-jsf-2021.7.jar /OSGI-INF/token-authentication-layouts-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="authTokenBindings">
          <templates>
            <template mode="any">
              /layouts/auth_token_bindings_layout_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>authToken</widget>
            </row>
            <row>
              <widget>authTokenApplicationName</widget>
            </row>
            <row>
              <widget>authTokenDeviceId</widget>
            </row>
            <row>
              <widget>authTokenDeviceDescription</widget>
            </row>
            <row>
              <widget>authTokenPermission</widget>
            </row>
            <row>
              <widget>authTokenCreationDate</widget>
            </row>
          </rows>
        </layout>
    
      </extension>
  • nuxeo-platform-webapp-base-2021.7.jar /OSGI-INF/layouts-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="gridUserLayout">
          <templates>
            <template mode="any">
              /layouts/layout_grid_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>userPanelTop</widget>
            </row>
            <row>
              <widget>userPanelLeft</widget>
              <widget>userPanelRight</widget>
            </row>
            <row>
              <widget>userPanelBottom</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="user">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>username</widget>
            </row>
            <row>
              <widget>firstname</widget>
            </row>
            <row>
              <widget>lastname</widget>
            </row>
            <row>
              <widget>company</widget>
            </row>
            <row>
              <widget>email</widget>
            </row>
            <row>
              <widget>groups</widget>
            </row>
            <row>
              <widget>groupsValidator</widget>
            </row>
            <row>
              <widget>vgroups</widget>
            </row>
            <row>
              <widget>passwordMatcher</widget>
            </row>
            <row>
              <widget>userAdditionalWidgets</widget>
            </row>
          </rows>
          <widget name="username" type="text">
            <labels>
              <label mode="any">username</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field schema="user">username</field>
            </fields>
            <widgetModes>
              <mode value="create">edit</mode>
              <mode value="editPassword">********</mode>
              <mode value="any">view</mode>
            </widgetModes>
            <properties widgetMode="edit">
              <property name="required">true</property>
              <property name="styleClass">dataInputText</property>
              <property name="validator">
                #{userManagementActions.validateUserName}
              </property>
            </properties>
          </widget>
          <widget name="firstname" type="text">
            <labels>
              <label mode="any">firstName</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field schema="user">firstName</field>
            </fields>
            <widgetModes>
              <mode value="editPassword">********</mode>
            </widgetModes>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="lastname" type="text">
            <labels>
              <label mode="any">lastName</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field schema="user">lastName</field>
            </fields>
            <widgetModes>
              <mode value="editPassword">********</mode>
            </widgetModes>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="company" type="text">
            <labels>
              <label mode="any">company</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field schema="user">company</field>
            </fields>
            <widgetModes>
              <mode value="editPassword">********</mode>
            </widgetModes>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="email" type="text">
            <labels>
              <label mode="any">email</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field schema="user">email</field>
            </fields>
            <widgetModes>
              <mode value="editPassword">********</mode>
            </widgetModes>
            <properties widgetMode="edit">
              <property name="required">true</property>
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="groups" type="multipleUsersSuggestion">
            <labels>
              <label mode="any">label.userManager.userGroups</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field schema="user">groups</field>
            </fields>
            <widgetModes>
              <mode value="edit">
                #{nxu:test(webActions.checkFilter('usersGroupsManagementAccess'),
                'edit', 'view')}
              </mode>
              <mode value="editPassword">********</mode>
            </widgetModes>
            <properties widgetMode="any">
              <property name="hideVirtualGroups">true</property>
              <property name="userSuggestionSearchType">GROUP_TYPE</property>
            </properties>
          </widget>
    
          <widget name="groupsValidator" type="template">
            <labels>
              <label mode="any"/>
            </labels>
            <translated>true</translated>
            <widgetModes>
              <mode value="create">edit</mode>
              <mode value="editPassword">********</mode>
              <mode value="view">hidden</mode>
            </widgetModes>
            <properties widgetMode="edit">
              <!-- XXX: depends on firstPassword and secondPassword widget names -->
              <property name="template">
                /widgets/user_groups_validation_widget_template.xhtml
              </property>
            </properties>
          </widget>
    
          <widget name="vgroups" type="userVirtualGroups">
            <labels>
              <label mode="any">label.userManager.userVirtualGroups</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field schema="user">username</field>
            </fields>
            <widgetModes>
              <mode value="create">hidden</mode>
              <mode value="editPassword">********</mode>
            </widgetModes>
          </widget>
           <widget name="passwordMatcher" type="template">
            <labels>
              <label mode="create">label.immediateCreation</label>
              <label mode="any"/>
            </labels>
            <translated>true</translated>
            <fields>
              <field schema="user">password</field>
            </fields>
            <widgetModes>
              <mode value="create">edit</mode>
              <mode value="editPassword">********</mode>
              <mode value="any">hidden</mode>
            </widgetModes>
            <properties widgetMode="edit">
              <property name="required">true</property>
              <property name="styleClass">dataInputText</property>
              <property name="template">
                /widgets/user_password_widget_template.xhtml
              </property>
            </properties>
            <properties widgetMode="editPassword">********<property name="required">true</property>
              <property name="styleClass">dataInputText</property>
              <property name="template">
                /widgets/user_password_validation_widget_template.xhtml
              </property>
            </properties>
          </widget>
        </layout>
    
        <layout name="profile_password">********<templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>profilePasswordMatcher</widget>
            </row>
          </rows>
          <widget name="profilePasswordMatcher" type="template">
            <labels>
              <label mode="any"/>
            </labels>
            <fields>
              <field schema="user">password</field>
            </fields>
            <widgetModes>
              <mode value="editProfilePassword">********</mode>
              <mode value="any">hidden</mode>
            </widgetModes>
            <properties widgetMode="editProfilePassword">********<property name="required">true</property>
              <property name="styleClass">dataInputText</property>
              <property name="template">
                /widgets/user_profile_password_validation_widget_template.xhtml
              </property>
            </properties>
          </widget>
        </layout>
    
        <layout name="user_registration">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>username</widget>
            </row>
            <row>
              <widget>firstname</widget>
            </row>
            <row>
              <widget>lastname</widget>
            </row>
            <row>
              <widget>company</widget>
            </row>
            <row>
              <widget>email</widget>
            </row>
            <row>
              <widget>groups</widget>
            </row>
            <row>
              <widget>groupsValidator</widget>
            </row>
            <row>
              <widget>vgroups</widget>
            </row>
          </rows>
          <widget name="username" type="text">
            <labels>
              <label mode="any">username</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field schema="userinfo">login</field>
            </fields>
            <widgetModes>
              <mode value="create">edit</mode>
              <mode value="editPassword">********</mode>
              <mode value="any">view</mode>
            </widgetModes>
            <properties widgetMode="edit">
              <property name="required">true</property>
              <property name="styleClass">dataInputText</property>
              <property name="validator">
                #{userManagementActions.validateUserName}
              </property>
            </properties>
          </widget>
          <widget name="firstname" type="text">
            <labels>
              <label mode="any">firstName</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field schema="userinfo">firstName</field>
            </fields>
            <widgetModes>
              <mode value="editPassword">********</mode>
            </widgetModes>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="lastname" type="text">
            <labels>
              <label mode="any">lastName</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field schema="userinfo">lastName</field>
            </fields>
            <widgetModes>
              <mode value="editPassword">********</mode>
            </widgetModes>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="company" type="text">
            <labels>
              <label mode="any">company</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field schema="userinfo">company</field>
            </fields>
            <widgetModes>
              <mode value="editPassword">********</mode>
            </widgetModes>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="email" type="text">
            <labels>
              <label mode="any">email</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field schema="userinfo">email</field>
            </fields>
            <widgetModes>
              <mode value="editPassword">********</mode>
            </widgetModes>
            <properties widgetMode="edit">
              <property name="required">true</property>
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="groups" type="multipleUsersSuggestion">
            <labels>
              <label mode="any">label.userManager.userGroups</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field schema="userinfo">groups</field>
            </fields>
            <widgetModes>
              <mode value="edit">
                #{nxu:test(webActions.checkFilter('usersGroupsManagementAccess'),
                'edit', 'view')}
              </mode>
              <mode value="editPassword">********</mode>
            </widgetModes>
            <properties widgetMode="any">
              <property name="hideVirtualGroups">true</property>
              <property name="userSuggestionSearchType">GROUP_TYPE</property>
            </properties>
          </widget>
          <widget name="groupsValidator" type="template">
            <labels>
              <label mode="any"/>
            </labels>
            <translated>true</translated>
            <widgetModes>
              <mode value="create">edit</mode>
              <mode value="editPassword">********</mode>
              <mode value="view">hidden</mode>
            </widgetModes>
            <properties widgetMode="edit">
              <!-- XXX: depends on firstPassword and secondPassword widget names -->
              <property name="template">
                /widgets/user_groups_validation_widget_template.xhtml
              </property>
            </properties>
          </widget>
          <widget name="vgroups" type="userVirtualGroups">
            <labels>
              <label mode="any">label.userManager.userVirtualGroups</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field schema="userinfo">login</field>
            </fields>
            <widgetModes>
              <mode value="create">hidden</mode>
              <mode value="editPassword">********</mode>
            </widgetModes>
          </widget>
        </layout>
    
        <layout name="group">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>group_name</widget>
            </row>
            <row>
              <widget>group_label</widget>
            </row>
            <row>
              <widget>group_members</widget>
            </row>
            <row>
              <widget>group_subgroups</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="user_group_suggestion">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>selection</widget>
            </row>
          </rows>
          <widget name="selection" type="multipleUsersSuggestion">
            <!-- add empty field to map layout value directly -->
            <fields>
              <field/>
            </fields>
            <labels>
              <label mode="any">label.security.usersOrGroups</label>
            </labels>
            <properties widgetMode="edit">
              <property name="hideHelpLabel">true</property>
              <property name="placeholder">label.security.search</property>
            </properties>
            <widgetModes>
              <mode value="create">edit</mode>
            </widgetModes>
          </widget>
        </layout>
    
        <layout name="user_group_prefixed_suggestion">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>selection</widget>
            </row>
          </rows>
          <widget name="selection" type="multipleUsersSuggestion">
            <!-- add empty field to map layout value directly -->
            <fields>
              <field/>
            </fields>
            <labels>
              <label mode="any">label.security.usersOrGroups</label>
            </labels>
            <properties widgetMode="edit">
              <property name="prefixed">true</property>
              <property name="hideHelpLabel">true</property>
              <property name="placeholder">label.security.search</property>
            </properties>
            <properties widgetMode="view">
              <property name="prefixed">true</property>
            </properties>
            <widgetModes>
              <mode value="create">edit</mode>
            </widgetModes>
          </widget>
        </layout>
    
        <layout name="document_content_filter">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>search_title</widget>
            </row>
            <row>
              <widget>search_modified_min</widget>
              <widget>search_modified_max</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="document_edit_form_options">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>document_edit_comment</widget>
            </row>
            <row>
              <widget>document_edit_current_version</widget>
            </row>
            <row>
              <widget>document_edit_versioning_options</widget>
            </row>
          </rows>
        </layout>
    
      </extension>
  • nuxeo-platform-user-registration-web-2021.7.jar /OSGI-INF/user-registration-layouts-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="user_requests_listing_layout">
          <properties mode="any">
            <property name="showListingHeader">true</property>
            <property name="showRowEvenOddClass">true</property>
          </properties>
          <templates>
            <template mode="any">/layouts/layout_listing_ajax_template.xhtml</template>
          </templates>
          <columns>
            <column>
              <properties mode="any">
                <property name="isListingSelectionBoxWithCurrentDocument">
                  true
                </property>
                <property name="useFirstWidgetLabelAsColumnHeader">false</property>
                <property name="columnStyleClass">iconColumn</property>
                <property name="isHidden">false</property>
              </properties>
              <widget>listing_ajax_selection_box_with_current_document</widget>
            </column>
    
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">userinfo:login</property>
              </properties>
              <widget>user_request_login</widget>
            </column>
    
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">userinfo:email</property>
              </properties>
              <widget>user_request_email</widget>
            </column>
    
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">userinfo:firstName</property>
              </properties>
              <widget>user_request_firstName</widget>
            </column>
    
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">userinfo:lastName</property>
              </properties>
              <widget>user_request_lastName</widget>
            </column>
    
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">userinfo:groups</property>
              </properties>
              <widget>user_request_groups</widget>
            </column>
    
            <column name="creation_date">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:created</property>
                <property name="label">label.dublincore.created</property>
              </properties>
              <properties mode="edit_sort_infos">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <properties mode="edit_sort_infos_map">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <widget>listing_creation_date</widget>
            </column>
    
            <column name="ace_begin">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">docinfo:begin</property>
                <property name="label">label.permissions.from</property>
              </properties>
              <properties mode="edit_sort_infos">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <properties mode="edit_sort_infos_map">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <widget>listing_ace_begin</widget>
            </column>
    
            <column name="ace_end">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">docinfo:end</property>
                <property name="label">label.permissions.to</property>
              </properties>
              <properties mode="edit_sort_infos">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <properties mode="edit_sort_infos_map">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <widget>listing_ace_end</widget>
            </column>
    
            <column name="lifecycle">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">
                  ecm:currentLifeCycleState
                </property>
                <property name="label">
                  label.content.header.currentLifecycleState
                </property>
              </properties>
              <properties mode="edit_sort_infos">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <widget>listing_lifecycle</widget>
            </column>
    
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">false</property>
              </properties>
              <widget>user_request_accept</widget>
            </column>
    
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">false</property>
              </properties>
              <widget>user_request_reject</widget>
            </column>
          </columns>
        </layout>
    
        <layout name="multiple_user_invitation_info">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml</template>
          </templates>
          <rows>
            <row>
              <widget>multiple_request_emails</widget>
            </row>
            <row>
              <widget>doc_request_permission</widget>
            </row>
            <row>
              <widget>user_request_comment</widget>
            </row>
            <row>
              <widget>user_request_copy_owner</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="user_invitation_info">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml</template>
          </templates>
          <rows>
            <row>
              <widget>user_request_email</widget>
            </row>
            <row>
              <widget>user_request_login</widget>
            </row>
            <row>
              <widget>user_request_firstName</widget>
            </row>
            <row>
              <widget>user_request_lastName</widget>
            </row>
            <row>
              <widget>doc_request_permission</widget>
            </row>
            <row>
              <widget>doc_request_date_range</widget>
            </row>
            <row>
              <widget>user_request_group</widget>
            </row>
            <row>
              <widget>user_request_comment</widget>
            </row>
            <row>
              <widget>user_request_copy_owner</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="user_request_configuration">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml</template>
          </templates>
          <rows>
            <row>
              <widget>request_config_allowUserCreation</widget>
            </row>
            <row>
              <widget>request_config_forceRight</widget>
            </row>
            <row>
              <widget>request_config_allowDirectValidationForExistingUser</widget>
            </row>
            <row>
              <widget>request_config_displayLocalRegistration</widget>
            </row>
          </rows>
        </layout>
    
      </extension>
  • nuxeo-platform-webapp-base-2021.7.jar /OSGI-INF/layouts-listing-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="document_listing_table" type="listingTable">
          <aliases>
            <alias>search_listing_ajax</alias>
            <alias>document_listing_ajax</alias>
            <alias>document_listing</alias>
          </aliases>
          <columns>
            <column alwaysSelected="true" name="selection">
              <properties mode="any">
                <property name="isListingSelectionBoxWithCurrentDocument">
                  true
                </property>
                <property name="useFirstWidgetLabelAsColumnHeader">false</property>
                <property name="columnStyleClass">iconColumn</property>
                <property name="label">label.selection.column.checkbox</property>
              </properties>
              <properties mode="csv">
                <property name="isHidden">true</property>
              </properties>
              <properties mode="pdf">
                <property name="isHidden">true</property>
              </properties>
              <widget>listing_ajax_selection_box_with_current_document</widget>
            </column>
            <column name="icon_type">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">false</property>
                <property name="columnStyleClass">iconColumn</property>
                <property name="label">label.selection.column.icon_type</property>
              </properties>
              <widget>listing_icon_type</widget>
            </column>
            <column name="title_link">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:title</property>
                <property name="label">label.selection.column.title_link</property>
              </properties>
              <properties mode="edit_sort_infos">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <properties mode="edit_sort_infos_map">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <widget>listing_title_link</widget>
            </column>
            <column name="lock">
              <properties mode="any">
                <property name="columnStyleClass">iconColumn</property>
                <property name="label">label.selection.column.lock</property>
              </properties>
              <properties mode="csv">
                <property name="isHidden">true</property>
              </properties>
              <properties mode="pdf">
                <property name="isHidden">true</property>
              </properties>
              <widget>listing_lock_icon</widget>
            </column>
            <column name="modification_date">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:modified</property>
                <property name="label">label.dublincore.modificationDate</property>
              </properties>
              <properties mode="edit_sort_infos">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <properties mode="edit_sort_infos_map">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <widget>listing_modification_date</widget>
            </column>
            <column name="lastContributor">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:lastContributor</property>
                <property name="label">label.dublincore.lastContributor</property>
              </properties>
              <properties mode="edit_sort_infos">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <properties mode="edit_sort_infos_map">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <widget>listing_last_contributor</widget>
            </column>
            <column name="version">
              <properties mode="any">
                <property name="columnStyleClass">iconColumn</property>
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="isSortable">false</property>
                <property name="label">label.version</property>
              </properties>
              <widget>listing_version</widget>
            </column>
            <column name="lifecycle">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">
                  ecm:currentLifeCycleState
                </property>
                <property name="label">label.lifecycle</property>
              </properties>
              <properties mode="edit_sort_infos">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <widget>listing_lifecycle</widget>
            </column>
            <column name="livedit_link">
              <properties mode="any">
                <property name="columnStyleClass">iconColumn</property>
                <property name="label">
                  label.selection.column.livedit_link
                </property>
              </properties>
              <properties mode="csv">
                <property name="isHidden">true</property>
              </properties>
              <properties mode="pdf">
                <property name="isHidden">true</property>
              </properties>
              <widget>listing_livedit_link</widget>
            </column>
            <column name="description" selectedByDefault="false">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:description</property>
                <property name="label">description</property>
              </properties>
              <properties mode="edit_sort_infos">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <properties mode="edit_sort_infos_map">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <widget>listing_description</widget>
            </column>
            <column name="nature" selectedByDefault="false">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:nature</property>
                <property name="label">label.dublincore.nature</property>
              </properties>
              <properties mode="edit_sort_infos">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <properties mode="edit_sort_infos_map">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <widget>listing_nature</widget>
            </column>
            <column name="subjects" selectedByDefault="false">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="label">label.dublincore.subject</property>
              </properties>
              <widget>listing_subjects</widget>
            </column>
            <column name="rights" selectedByDefault="false">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:rights</property>
                <property name="label">label.dublincore.rights</property>
              </properties>
              <properties mode="edit_sort_infos">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <properties mode="edit_sort_infos_map">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <widget>listing_rights</widget>
            </column>
            <column name="source" selectedByDefault="false">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:source</property>
                <property name="label">label.dublincore.source</property>
              </properties>
              <properties mode="edit_sort_infos">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <properties mode="edit_sort_infos_map">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <widget>listing_source</widget>
            </column>
            <column name="coverage" selectedByDefault="false">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:coverage</property>
                <property name="label">label.dublincore.coverage</property>
              </properties>
              <properties mode="edit_sort_infos">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <properties mode="edit_sort_infos_map">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <widget>listing_coverage</widget>
            </column>
            <column name="creation_date" selectedByDefault="false">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:created</property>
                <property name="label">label.dublincore.created</property>
              </properties>
              <properties mode="edit_sort_infos">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <properties mode="edit_sort_infos_map">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <widget>listing_creation_date</widget>
            </column>
            <column name="format" selectedByDefault="false">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:format</property>
                <property name="label">label.dublincore.format</property>
              </properties>
              <properties mode="edit_sort_infos">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <properties mode="edit_sort_infos_map">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <widget>listing_format</widget>
            </column>
            <column name="language" selectedByDefault="false">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:language</property>
                <property name="label">label.dublincore.language</property>
              </properties>
              <properties mode="edit_sort_infos">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <properties mode="edit_sort_infos_map">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <widget>listing_language</widget>
            </column>
            <column name="expired_date" selectedByDefault="false">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:expired</property>
                <property name="label">label.dublincore.expired</property>
              </properties>
              <properties mode="edit_sort_infos">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <properties mode="edit_sort_infos_map">
                <property name="showInSortInfoSelection">true</property>
              </properties>
              <widget>listing_expiration_date</widget>
            </column>
            <column name="contributors" selectedByDefault="false">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="label">label.dublincore.contributors</property>
              </properties>
              <widget>listing_contributors</widget>
            </column>
          </columns>
        </layout>
    
        <layout name="document_listing_thumbnail" type="listingThumbnail">
          <columns>
            <column name="last_contributor">
              <properties mode="any">
                <property name="label">label.dublincore.lastContributor</property>
              </properties>
              <widget>listing_last_contributor</widget>
            </column>
            <column name="size_and_format">
              <properties mode="any">
                <property name="label">
                  label.selection.column.size_and_format
                </property>
              </properties>
              <widget>listing_size_and_format</widget>
            </column>
          </columns>
        </layout>
    
        <layout name="document_virtual_navigation_listing_ajax">
          <aliases>
            <alias>document_virtual_navigation_listing</alias>
          </aliases>
          <templates>
            <template mode="any">
              /layouts/layout_listing_ajax_template.xhtml
            </template>
            <template mode="csv">
              /layouts/layout_listing_csv_template.xhtml
            </template>
            <template mode="pdf">
              /layouts/layout_listing_pdf_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="showListingHeader">true</property>
            <property name="showRowEvenOddClass">true</property>
          </properties>
          <columns>
            <column>
              <properties mode="any">
                <property name="isListingSelectionBox">true</property>
                <property name="useFirstWidgetLabelAsColumnHeader">false</property>
                <property name="columnStyleClass">iconColumn</property>
              </properties>
              <properties mode="csv">
                <property name="isHidden">true</property>
              </properties>
              <properties mode="pdf">
                <property name="isHidden">true</property>
              </properties>
              <widget>listing_ajax_selection_box</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">false</property>
                <property name="columnStyleClass">iconColumn</property>
              </properties>
              <widget>listing_icon_type</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:title</property>
              </properties>
              <widget>listing_title_link</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="columnStyleClass">iconColumn</property>
              </properties>
              <properties mode="csv">
                <property name="isHidden">true</property>
              </properties>
              <widget>listing_lock_icon</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:modified</property>
              </properties>
              <widget>listing_modification_date</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:lastContributor</property>
              </properties>
              <widget>listing_last_contributor</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>listing_version</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">
                  ecm:currentLifeCycleState
                </property>
              </properties>
              <widget>listing_lifecycle</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="columnStyleClass">iconColumn</property>
              </properties>
              <properties mode="csv">
                <property name="isHidden">true</property>
              </properties>
              <properties mode="pdf">
                <property name="isHidden">true</property>
              </properties>
              <widget>listing_livedit_link</widget>
            </column>
          </columns>
        </layout>
    
        <layout name="document_listing_ajax_compact_2_columns">
          <aliases>
            <alias>document_listing_compact_2_columns</alias>
          </aliases>
          <properties mode="any">
            <property name="display">table_2_columns</property>
          </properties>
          <templates>
            <template mode="any">
              /layouts/layout_listing_ajax_template.xhtml
            </template>
            <template mode="csv">
              /layouts/layout_listing_csv_template.xhtml
            </template>
            <template mode="pdf">
              /layouts/layout_listing_pdf_template.xhtml
            </template>
          </templates>
          <columns>
            <column alwaysSelected="true">
              <properties mode="any">
                <property name="columnStyleClass">iconColumn</property>
              </properties>
              <properties mode="csv">
                <property name="isHidden">true</property>
              </properties>
              <properties mode="pdf">
                <property name="isHidden">true</property>
              </properties>
              <widget>listing_ajax_selection_box_with_current_document</widget>
            </column>
            <column alwaysSelected="true">
              <properties mode="any">
                <property name="columnStyleClass">iconColumn</property>
              </properties>
              <widget>listing_icon_type</widget>
            </column>
            <column alwaysSelected="true">
              <widget>listing_title_link</widget>
              <widget>listing_modification_date</widget>
              <widget>listing_author</widget>
              <widget>listing_lifecycle</widget>
              <widget>listing_version</widget>
            </column>
          </columns>
        </layout>
    
        <layout name="document_virtual_navigation_listing_ajax_compact_2_columns">
          <properties mode="any">
            <property name="display">table_2_columns</property>
          </properties>
          <templates>
            <template mode="any">
              /layouts/layout_listing_ajax_template.xhtml
            </template>
            <template mode="csv">
              /layouts/layout_listing_csv_template.xhtml
            </template>
            <template mode="pdf">
              /layouts/layout_listing_pdf_template.xhtml
            </template>
          </templates>
          <columns>
            <column alwaysSelected="true">
              <properties mode="any">
                <property name="columnStyleClass">iconColumn</property>
              </properties>
              <properties mode="csv">
                <property name="isHidden">true</property>
              </properties>
              <properties mode="pdf">
                <property name="isHidden">true</property>
              </properties>
              <widget>listing_ajax_selection_box</widget>
            </column>
            <column alwaysSelected="true">
              <properties mode="any">
                <property name="columnStyleClass">iconColumn</property>
              </properties>
              <widget>listing_icon_type</widget>
            </column>
            <column alwaysSelected="true">
              <widget>listing_title_link</widget>
              <widget>listing_modification_date</widget>
              <widget>listing_author</widget>
              <widget>listing_lifecycle</widget>
              <widget>listing_version</widget>
            </column>
          </columns>
        </layout>
    
        <layout name="document_listing_icon_2_columns">
          <properties mode="any">
            <property name="display">table_2_columns</property>
          </properties>
          <templates>
            <template mode="any">
              /layouts/layout_listing_template.xhtml
            </template>
            <template mode="csv">
              /layouts/layout_listing_csv_template.xhtml
            </template>
            <template mode="pdf">
              /layouts/layout_listing_pdf_template.xhtml
            </template>
          </templates>
          <columns>
            <column alwaysSelected="true">
              <properties mode="csv">
                <property name="isHidden">true</property>
              </properties>
              <properties mode="pdf">
                <property name="isHidden">true</property>
              </properties>
              <widget>listing_selection_box_with_current_document</widget>
            </column>
            <column alwaysSelected="true">
              <widget>listing_big_icon_type_link</widget>
            </column>
            <column alwaysSelected="true">
              <widget>listing_title_link</widget>
            </column>
          </columns>
        </layout>
    
        <layout name="document_listing_ajax_icon_2_columns">
          <properties mode="any">
            <property name="display">table_2_columns</property>
          </properties>
          <templates>
            <template mode="any">
              /layouts/layout_listing_ajax_template.xhtml
            </template>
            <template mode="csv">
              /layouts/layout_listing_csv_template.xhtml
            </template>
            <template mode="pdf">
              /layouts/layout_listing_pdf_template.xhtml
            </template>
          </templates>
          <columns>
            <column alwaysSelected="true">
              <properties mode="csv">
                <property name="isHidden">true</property>
              </properties>
              <properties mode="pdf">
                <property name="isHidden">true</property>
              </properties>
              <widget>listing_ajax_selection_box_with_current_document</widget>
            </column>
            <column alwaysSelected="true">
              <widget>listing_thumbnail</widget>
            </column>
            <column alwaysSelected="true">
              <widget>listing_title_link</widget>
            </column>
          </columns>
        </layout>
    
        <layout name="document_virtual_navigation_listing_ajax_icon_2_columns">
          <properties mode="any">
            <property name="display">table_2_columns</property>
          </properties>
          <templates>
            <template mode="any">
              /layouts/layout_listing_ajax_template.xhtml
            </template>
            <template mode="csv">
              /layouts/layout_listing_csv_template.xhtml
            </template>
            <template mode="pdf">
              /layouts/layout_listing_pdf_template.xhtml
            </template>
          </templates>
          <columns>
            <column alwaysSelected="true">
              <properties mode="csv">
                <property name="isHidden">true</property>
              </properties>
              <properties mode="pdf">
                <property name="isHidden">true</property>
              </properties>
              <widget>listing_ajax_selection_box</widget>
            </column>
            <column alwaysSelected="true">
              <widget>listing_thumbnail</widget>
            </column>
            <column alwaysSelected="true">
              <widget>listing_title_link</widget>
            </column>
          </columns>
        </layout>
    
        <layout name="listing_thumbnail_header">
          <templates>
            <template mode="any">
              /layouts/layout_div_template.xhtml
            </template>
          </templates>
          <columns>
            <column alwaysSelected="true" name="selection">
              <widget>listing_ajax_selection_box</widget>
            </column>
            <column>
              <widget>listing_thumbnail</widget>
            </column>
            <column>
              <widget>listing_title_link</widget>
            </column>
          </columns>
        </layout>
    
      </extension>
  • nuxeo-platform-relations-web-2021.7.jar /OSGI-INF/search-layouts-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="relation_search">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml</template>
          </templates>
          <rows>
            <row>
              <widget>relation_search_path</widget>
            </row>
            <row>
              <widget>relation_search_title</widget>
            </row>
            <row>
              <widget>relation_search_fulltext</widget>
            </row>
            <row>
              <widget>relation_search_deleted_documents</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="relation_document_listing">
          <templates>
            <template mode="any">/layouts/layout_listing_template.xhtml</template>
          </templates>
          <properties mode="any">
            <property name="showListingHeader">true</property>
            <property name="showRowEvenOddClass">true</property>
          </properties>
          <columns>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">false</property>
                <property name="columnStyleClass">iconColumn</property>
              </properties>
              <widget>listing_icon_type</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:title</property>
              </properties>
              <widget>relation_listing_title_link</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>listing_path</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="columnStyleClass">iconColumn</property>
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="isSortable">false</property>
              </properties>
              <widget>listing_version</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:modified</property>
                <property name="defaultSortAscending">false</property>
              </properties>
              <widget>listing_modification_date</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:lastContributor</property>
              </properties>
              <widget>listing_last_contributor</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:creator</property>
              </properties>
              <widget>listing_author</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">
                  ecm:currentLifeCycleState
                </property>
              </properties>
              <widget>listing_lifecycle</widget>
            </column>
          </columns>
        </layout>
    
      </extension>
  • nuxeo-platform-rendition-web-2021.7.jar /OSGI-INF/search-layouts-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="stored_rendition_search">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml</template>
          </templates>
          <rows>
            <row>
              <widget>stored_rendition_search_title</widget>
            </row>
            <row>
              <widget>stored_rendition_search_creation_min</widget>
              <widget>stored_rendition_search_creation_max</widget>
            </row>
            <row>
              <widget>stored_rendition_search_source_modification_min</widget>
              <widget>stored_rendition_search_source_modification_max</widget>
            </row>
            <row>
              <widget>stored_rendition_search_rendition_name</widget>
            </row>
            <row>
              <widget>stored_rendition_search_rendition_variant</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="renditions_listing" type="listingTable">
          <columns>
            <column alwaysSelected="true" name="selection">
              <properties>
                <property name="isListingSelectionBoxWithCurrentDocument">true</property>
                <property name="useFirstWidgetLabelAsColumnHeader">false</property>
                <property name="columnStyleClass">iconColumn</property>
                <property name="label">label.selection.column.checkbox</property>
              </properties>
              <properties mode="csv">
                <property name="isHidden">true</property>
              </properties>
              <properties mode="pdf">
                <property name="isHidden">true</property>
              </properties>
              <widget>listing_ajax_selection_box_with_current_document</widget>
            </column>
            <column name="icon_type">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">false</property>
                <property name="columnStyleClass">iconColumn</property>
                <property name="label">label.selection.column.icon_type</property>
              </properties>
              <widget>listing_icon_type</widget>
            </column>
            <column name="title_link" selectedByDefault="true">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:title</property>
                <property name="label">label.selection.column.title_link</property>
              </properties>
              <widget>listing_rendition_title_link</widget>
            </column>
            <column name="rendition_source_title_link" selectedByDefault="true">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="label">label.rendition.source_title_link</property>
              </properties>
              <widget>listing_rendition_source_title_link</widget>
            </column>
            <column name="rendition_source_modification_date" selectedByDefault="true">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="label">label.rendition.sourceModificationDate</property>
              </properties>
              <widget>listing_rendition_source_modification_date</widget>
            </column>
            <column name="rendition_name" selectedByDefault="true">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="label">label.rendition.renditionName</property>
              </properties>
              <widget>listing_rendition_name</widget>
            </column>
            <column name="rendition_variant" selectedByDefault="true">
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="label">label.rendition.renditionVariant</property>
              </properties>
              <widget>listing_rendition_variant</widget>
            </column>
          </columns>
        </layout>
    
      </extension>
  • nuxeo-platform-webapp-base-2021.7.jar /OSGI-INF/users-layouts-listing-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="users_listing">
          <templates>
            <template mode="any">
              /layouts/layout_listing_template.xhtml
            </template>
            <template mode="csv">
              /layouts/layout_listing_csv_template.xhtml
            </template>
            <template mode="pdf">
              /layouts/layout_listing_pdf_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="showListingHeader">true</property>
            <property name="showRowEvenOddClass">true</property>
          </properties>
          <columns>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>listing_userName</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>listing_firstName</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>listing_lastName</widget>
            </column>
          </columns>
        </layout>
    
        <layout name="groups_listing">
          <templates>
            <template mode="any">
              /layouts/layout_listing_template.xhtml
            </template>
            <template mode="csv">
              /layouts/layout_listing_csv_template.xhtml
            </template>
            <template mode="pdf">
              /layouts/layout_listing_pdf_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="showListingHeader">true</property>
            <property name="showRowEvenOddClass">true</property>
          </properties>
          <columns>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>listing_groupName</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>listing_groupLabel</widget>
            </column>
          </columns>
        </layout>
    
      </extension>
  • nuxeo-platform-webapp-base-2021.7.jar /OSGI-INF/collection-layout-listing-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="collections_listing" type="listingTable">
          <properties mode="any">
            <property name="showListingHeader">true</property>
            <property name="showRowEvenOddClass">true</property>
            <property name="display">table</property>
          </properties>
          <columns>
            <column>
              <properties mode="any">
                <property name="isListingSelectionBoxWithCurrentDocument">
                  true
                </property>
                <property name="useFirstWidgetLabelAsColumnHeader">false</property>
                <property name="columnStyleClass">iconColumn</property>
              </properties>
              <properties mode="csv">
                <property name="isHidden">true</property>
              </properties>
              <properties mode="pdf">
                <property name="isHidden">true</property>
              </properties>
              <widget>listing_ajax_selection_box_with_current_document</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">false</property>
                <property name="columnStyleClass">iconColumn</property>
              </properties>
              <widget>listing_icon_type</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:title</property>
              </properties>
              <widget>listing_title_link</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="columnStyleClass">iconColumn</property>
              </properties>
              <properties mode="csv">
                <property name="isHidden">true</property>
              </properties>
              <properties mode="pdf">
                <property name="isHidden">true</property>
              </properties>
              <widget>listing_lock_icon</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:modified</property>
              </properties>
              <widget>listing_modification_date</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:lastContributor</property>
              </properties>
              <widget>listing_last_contributor</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>listing_manage_collection</widget>
            </column>
          </columns>
        </layout>
    
      </extension>
  • nuxeo-platform-webapp-core-2021.7.jar /OSGI-INF/layouts-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="heading">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>title</widget>
            </row>
            <row>
              <widget>description</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="dublincore">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>nature</widget>
            </row>
            <row>
              <widget>subjects</widget>
            </row>
            <row>
              <widget>rights</widget>
            </row>
            <row>
              <widget>source</widget>
            </row>
            <row>
              <widget>coverage</widget>
            </row>
            <row>
              <widget>created</widget>
            </row>
            <row>
              <widget>modified</widget>
            </row>
            <row>
              <widget>format</widget>
            </row>
            <row>
              <widget>language</widget>
            </row>
            <row>
              <widget>expired</widget>
            </row>
            <row>
              <widget>author</widget>
            </row>
            <row>
              <widget>contributors</widget>
            </row>
            <row>
              <widget>lastContributor</widget>
            </row>
          </rows>
    
        </layout>
    
        <layout name="file">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>file</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="note">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>note</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="files">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>files</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="document_header">
          <templates>
            <template mode="any">/layouts/layout_div_template.xhtml</template>
          </templates>
          <rows>
            <row>
              <widget>header_title_and_permlink</widget>
            </row>
            <row>
              <widget>header_description</widget>
            </row>
          </rows>
        </layout>
    
    
        <layout name="dndEdit">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>nature</widget>
            </row>
            <row>
              <widget>subjects</widget>
            </row>
            <row>
              <widget>rights</widget>
            </row>
            <row>
              <widget>source</widget>
            </row>
            <row>
              <widget>coverage</widget>
            </row>
            <row>
              <widget>format</widget>
            </row>
            <row>
              <widget>language</widget>
            </row>
            <row>
              <widget>expired</widget>
            </row>
          </rows>
    
        </layout>
    
        <layout name="bulkEdit@edit">
          <templates>
            <template mode="any">/layouts/layout_bulkedit_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>bulk_tags</widget>
            </row>
            <row>
              <widget>bulk_collections</widget>
            </row>
            <row>
              <widget>nature</widget>
            </row>
            <row>
              <widget>subjects</widget>
            </row>
            <row>
              <widget>coverage</widget>
            </row>
            <row>
              <widget>expired</widget>
            </row>
            <row>
              <widget>rights</widget>
            </row>
            <row>
              <widget>source</widget>
            </row>
            <row>
              <widget>format</widget>
            </row>
            <row>
              <widget>language</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="bulkImport@create">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml</template>
          </templates>
          <rows>
            <row>
              <widget>bulk_tags</widget>
            </row>
            <row>
              <widget>bulk_collections</widget>
            </row>
            <row>
              <widget>nature</widget>
            </row>
            <row>
              <widget>subjects</widget>
            </row>
            <row>
              <widget>coverage</widget>
            </row>
          </rows>
        </layout>
      </extension>
  • nuxeo-platform-webapp-core-2021.7.jar /OSGI-INF/layouts-summary-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <documentation>
          Default layouts displayed on documents summary view
        </documentation>
    
        <layout name="grid_summary_layout">
          <templates>
            <template mode="any">
              /layouts/layout_grid_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>summary_panel_top</widget>
            </row>
            <row>
              <widget>summary_panel_left</widget>
              <widget>summary_panel_right</widget>
            </row>
            <row>
              <widget>summary_panel_bottom</widget>
            </row>
          </rows>
        </layout>
    
        <!-- deprecated since 5.6, use a grid layout now -->
        <layout name="default_summary_layout">
          <templates>
            <template mode="any">/layouts/layout_summary_template.xhtml</template>
          </templates>
          <rows>
            <row>
              <widget>summary_current_document_files</widget>
              <widget>summary_current_document_view</widget>
              <widget>summary_current_document_comments</widget>
            </row>
            <row>
              <widget>summary_current_document_description</widget>
              <widget>summary_current_document_states</widget>
              <widget>summary_current_document_contributors</widget>
              <widget>summary_current_document_custom_actions</widget>
              <widget>summary_current_document_tagging</widget>
              <widget>summary_current_document_relations</widget>
            </row>
            <row>
              <widget>summary_current_document_publications</widget>
            </row>
            <row>
              <widget>summary_current_document_single_tasks</widget>
            </row>
          </rows>
        </layout>
    
        <!-- deprecated since 5.6, use a grid layout now -->
        <layout name="note_summary_layout">
          <templates>
            <template mode="any">/layouts/layout_summary_template.xhtml</template>
          </templates>
          <rows>
            <row>
              <widget>summary_note_text</widget>
              <widget>summary_current_document_files</widget>
              <widget>summary_current_document_comments</widget>
            </row>
            <row>
              <widget>summary_current_document_description</widget>
              <widget>summary_current_document_states</widget>
              <widget>summary_current_document_contributors</widget>
              <widget>summary_current_document_custom_actions</widget>
              <widget>summary_current_document_tagging</widget>
              <widget>summary_current_document_relations</widget>
            </row>
            <row>
              <widget>summary_current_document_publications</widget>
            </row>
            <row>
              <widget>summary_current_document_single_tasks</widget>
            </row>
          </rows>
        </layout>
    
      </extension>
  • nuxeo-platform-audio-jsf-2021.7.jar /OSGI-INF/layouts-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="audio_file">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml</template>
          </templates>
          <rows>
            <row>
              <widget>audioFile</widget>
            </row>
          </rows>
        </layout>
    
      </extension>
  • nuxeo-platform-imaging-jsf-2021.7.jar /OSGI-INF/imaging-layouts-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <!-- deprecated since 5.6 -->
        <layout name="picture_summary_layout">
          <templates>
            <template mode="any">/layouts/layout_summary_template.xhtml</template>
          </templates>
          <rows>
            <row>
              <widget>summary_picture_view</widget>
              <widget>summary_current_document_files</widget>
              <widget>summary_current_document_comments</widget>
            </row>
            <row>
              <widget>summary_current_document_description</widget>
              <widget>summary_current_document_states</widget>
              <widget>summary_current_document_contributors</widget>
              <widget>summary_current_document_custom_actions</widget>
              <widget>summary_current_document_tagging</widget>
              <widget>summary_current_document_relations</widget>
            </row>
            <row>
              <widget>summary_current_document_publications</widget>
            </row>
            <row>
              <widget>summary_current_document_single_tasks</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="picture">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml</template>
          </templates>
          <rows>
            <row>
              <widget>imageFile</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="exif_info">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml</template>
          </templates>
          <rows>
            <row>
              <widget>date_time_original</widget>
            </row>
            <row>
              <widget>pixel_xdimension</widget>
            </row>
            <row>
              <widget>pixel_ydimension</widget>
            </row>
            <row>
              <widget>orientation</widget>
            </row>
            <row>
              <widget>equipment</widget>
            </row>
            <row>
              <widget>fnumber</widget>
            </row>
            <row>
              <widget>exposure_time</widget>
            </row>
            <row>
              <widget>iso_speed_ratings</widget>
            </row>
          </rows>
          <widget name="date_time_original" type="datetime">
            <translated>true</translated>
            <fields>
              <field>imd:date_time_original</field>
            </fields>
            <properties widgetMode="view">
              <property name="pattern">#{nxu:basicDateFormatter()}</property>
            </properties>
            <properties widgetMode="edit">
              <property name="format">#{nxu:basicDateFormatter()}</property>
              <property name="styleClass">dataInputTextDate</property>
            </properties>
          </widget>
          <widget name="pixel_xdimension" type="text">
            <translated>true</translated>
            <fields>
              <field>imd:pixel_xdimension</field>
            </fields>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="pixel_ydimension" type="text">
            <translated>true</translated>
            <fields>
              <field>imd:pixel_ydimension</field>
            </fields>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="orientation" type="text">
            <translated>true</translated>
            <fields>
              <field>imd:orientation</field>
            </fields>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="equipment" type="text">
            <translated>true</translated>
            <fields>
              <field>imd:equipment</field>
            </fields>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="fnumber" type="text">
            <translated>true</translated>
            <fields>
              <field>imd:fnumber</field>
            </fields>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="exposure_time" type="text">
            <translated>true</translated>
            <fields>
              <field>imd:exposure_time</field>
            </fields>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="iso_speed_ratings" type="text">
            <translated>true</translated>
            <fields>
              <field>imd:iso_speed_ratings</field>
            </fields>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
        </layout>
    
        <layout name="iptc_info">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml</template>
          </templates>
          <rows>
            <row>
              <widget>object_name</widget>
            </row>
            <row>
              <widget>headline</widget>
            </row>
            <row>
              <widget>keywords</widget>
            </row>
            <row>
              <widget>date_created</widget>
            </row>
            <row>
              <widget>country_or_primary_location</widget>
            </row>
            <row>
              <widget>province_or_state</widget>
            </row>
            <row>
              <widget>city</widget>
            </row>
            <row>
              <widget>caption</widget>
            </row>
            <row>
              <widget>by_line</widget>
            </row>
            <row>
              <widget>by_line_title</widget>
            </row>
            <row>
              <widget>copyright_notice</widget>
            </row>
            <row>
              <widget>credit</widget>
            </row>
            <row>
              <widget>source</widget>
            </row>
            <row>
              <widget>writer</widget>
            </row>
          </rows>
          <widget name="caption" type="text">
            <translated>true</translated>
            <fields>
              <field>iptc:caption</field>
            </fields>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="country_or_primary_location" type="text">
            <translated>true</translated>
            <fields>
              <field>iptc:country_or_primary_location</field>
            </fields>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="province_or_state" type="text">
            <translated>true</translated>
            <fields>
              <field>iptc:province_or_state</field>
            </fields>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="city" type="text">
            <translated>true</translated>
            <fields>
              <field>iptc:city</field>
            </fields>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="by_line" type="text">
            <translated>true</translated>
            <fields>
              <field>iptc:by_line</field>
            </fields>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="by_line_title" type="text">
            <translated>true</translated>
            <fields>
              <field>iptc:by_line_title</field>
            </fields>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="copyright_notice" type="text">
            <translated>true</translated>
            <fields>
              <field>iptc:copyright_notice</field>
            </fields>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="credit" type="text">
            <translated>true</translated>
            <fields>
              <field>iptc:credit</field>
            </fields>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="date_created" type="datetime">
            <translated>true</translated>
            <fields>
              <field>iptc:date_created</field>
            </fields>
            <properties widgetMode="view">
              <property name="pattern">#{nxu:basicDateFormatter()}</property>
            </properties>
            <properties widgetMode="edit">
              <property name="format">#{nxu:basicDateFormatter()}</property>
              <property name="styleClass">dataInputTextDate</property>
            </properties>
          </widget>
          <widget name="headline" type="text">
            <translated>true</translated>
            <fields>
              <field>iptc:headline</field>
            </fields>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="keywords" type="text">
            <translated>true</translated>
            <fields>
              <field>iptc:keywords</field>
            </fields>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="object_name" type="text">
            <translated>true</translated>
            <fields>
              <field>iptc:object_name</field>
            </fields>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="source" type="text">
            <translated>true</translated>
            <fields>
              <field>iptc:source</field>
            </fields>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
          <widget name="writer" type="text">
            <translated>true</translated>
            <fields>
              <field>iptc:writer</field>
            </fields>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputText</property>
            </properties>
          </widget>
        </layout>
    
        <layout name="picture_info">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml</template>
          </templates>
          <rows>
            <row>
              <widget>picture_info_dimensions</widget>
            </row>
            <row>
              <widget>picture_info_format</widget>
            </row>
            <row>
              <widget>picture_info_colorspace</widget>
            </row>
            <row>
              <widget>picture_info_depth</widget>
            </row>
          </rows>
        </layout>
    
      </extension>
  • nuxeo-platform-video-jsf-2021.7.jar /OSGI-INF/layouts-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="video_file">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml</template>
          </templates>
          <rows>
            <row>
              <widget>videoFile</widget>
            </row>
          </rows>
        </layout>
    
        <!-- deprecated since 5.6, here for compat -->
        <layout name="video_summary_layout">
          <templates>
            <template mode="any">/layouts/layout_summary_template.xhtml</template>
          </templates>
          <rows>
            <row>
              <widget>summary_video_player</widget>
              <widget>summary_current_document_files</widget>
              <widget>summary_video_conversions</widget>
              <widget>summary_current_document_comments</widget>
            </row>
            <row>
              <widget>summary_current_document_description</widget>
              <widget>summary_current_document_states</widget>
              <widget>summary_current_document_contributors</widget>
              <widget>summary_video_storyboard</widget>
              <widget>summary_video_info</widget>
              <widget>summary_current_document_tagging</widget>
              <widget>summary_current_document_relations</widget>
            </row>
            <row>
              <widget>summary_current_document_publications</widget>
            </row>
            <row>
              <widget>summary_current_document_single_tasks</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="video_info">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml</template>
          </templates>
          <rows>
            <row>
              <widget>video_info_format</widget>
            </row>
            <row>
              <widget>video_info_duration</widget>
            </row>
            <row>
              <widget>video_info_width</widget>
            </row>
            <row>
              <widget>video_info_height</widget>
            </row>
            <row>
              <widget>video_info_frameRate</widget>
            </row>
          </rows>
        </layout>
      </extension>
  • nuxeo-platform-webapp-core-2021.7.jar /OSGI-INF/directory-ui-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="vocabulary">
          <templates>
            <template mode="any">
              /directory/directory_layout_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>vocabulary_id</widget>
            </row>
            <row>
              <widget>vocabulary_label</widget>
            </row>
            <row>
              <widget>vocabulary_obsolete</widget>
            </row>
            <row>
              <widget>vocabulary_order</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="country_vocabulary">
          <templates>
            <template mode="any">
              /directory/directory_layout_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>parent</widget>
            </row>
            <row>
              <widget>xvocabulary_id</widget>
            </row>
            <row>
              <widget>xvocabulary_label</widget>
            </row>
            <row>
              <widget>xvocabulary_obsolete</widget>
            </row>
            <row>
              <widget>xvocabulary_order</widget>
            </row>
          </rows>
          <widget name="parent" type="selectOneDirectory">
            <labels>
              <label mode="any">label.vocabulary.entry.parent</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>xvocabulary:parent</field>
            </fields>
            <properties mode="any">
              <property name="directoryName">continent</property>
              <property name="localize">true</property>
            </properties>
            <properties widgetMode="edit">
              <property name="required">true</property>
              <property name="displayObsoleteEntries">true</property>
            </properties>
          </widget>
        </layout>
    
        <layout name="subtopic_vocabulary">
          <templates>
            <template mode="any">
              /directory/directory_layout_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>parent</widget>
            </row>
            <row>
              <widget>xvocabulary_id</widget>
            </row>
            <row>
              <widget>xvocabulary_label</widget>
            </row>
            <row>
              <widget>xvocabulary_obsolete</widget>
            </row>
            <row>
              <widget>xvocabulary_order</widget>
            </row>
          </rows>
          <widget name="parent" type="selectOneDirectory">
            <labels>
              <label mode="any">label.vocabulary.entry.parent</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>xvocabulary:parent</field>
            </fields>
            <properties mode="any">
              <property name="directoryName">topic</property>
              <property name="localize">true</property>
            </properties>
            <properties widgetMode="edit">
              <property name="required">true</property>
              <property name="displayObsoleteEntries">true</property>
            </properties>
          </widget>
        </layout>
    
        <layout name="l10nvocabulary">
          <templates>
            <template mode="any">
              /directory/directory_layout_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>l10nvocabulary_id</widget>
            </row>
            <row>
              <widget>l10nvocabulary_label_fr</widget>
            </row>
            <row>
              <widget>l10nvocabulary_label_en</widget>
            </row>
            <row>
              <widget>l10nvocabulary_obsolete</widget>
            </row>
            <row>
              <widget>l10nvocabulary_order</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="l10ncoverage_vocabulary">
          <templates>
            <template mode="any">
              /directory/directory_layout_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>parent</widget>
            </row>
            <row>
              <widget>l10nxvocabulary_id</widget>
            </row>
            <row>
              <widget>l10nxvocabulary_label_en</widget>
            </row>
            <row>
              <widget>l10nxvocabulary_label_fr</widget>
            </row>
            <row>
              <widget>l10nxvocabulary_obsolete</widget>
            </row>
            <row>
              <widget>l10nxvocabulary_order</widget>
            </row>
          </rows>
          <widget name="parent" type="suggestOneDirectory">
            <labels>
              <label mode="any">label.vocabulary.entry.parent</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>l10nxvocabulary:parent</field>
            </fields>
            <properties mode="any">
              <property name="directoryName">l10ncoverage</property>
              <property name="dbl10n">true</property>
            </properties>
            <properties widgetMode="edit">
              <property name="width">100%</property>
              <property name="minChars">0</property>
              <property name="hideHelpLabel">true</property>
              <property name="displayObsoleteEntries">true</property>
              <property name="canSelectParent">true</property>
            </properties>
          </widget>
        </layout>
    
        <layout name="l10nsubjects_vocabulary">
          <templates>
            <template mode="any">
              /directory/directory_layout_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>parent</widget>
            </row>
            <row>
              <widget>l10nxvocabulary_id</widget>
            </row>
            <row>
              <widget>l10nxvocabulary_label_en</widget>
            </row>
            <row>
              <widget>l10nxvocabulary_label_fr</widget>
            </row>
            <row>
              <widget>l10nxvocabulary_obsolete</widget>
            </row>
            <row>
              <widget>l10nxvocabulary_order</widget>
            </row>
          </rows>
          <widget name="parent" type="suggestOneDirectory">
            <labels>
              <label mode="any">label.vocabulary.entry.parent</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>l10nxvocabulary:parent</field>
            </fields>
            <properties mode="any">
              <property name="directoryName">l10nsubjects</property>
              <property name="dbl10n">true</property>
            </properties>
            <properties widgetMode="edit">
              <property name="width">100%</property>
              <property name="minChars">0</property>
              <property name="hideHelpLabel">true</property>
              <property name="displayObsoleteEntries">true</property>
              <property name="canSelectParent">true</property>
            </properties>
          </widget>
        </layout>
    
      </extension>
  • nuxeo-platform-webapp-core-2021.7.jar /OSGI-INF/info-view-layouts-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="gridInfoViewLayout">
          <templates>
            <template mode="any">
              /layouts/layout_grid_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>infoViewPanelLeft</widget>
              <widget>infoViewPanelRight</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="defaultInfoLayout@tabLayout">
          <templates>
            <template mode="any">
              /layouts/layout_grid_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>infoViewInfoBox</widget>
            </row>
            <row>
              <widget>infoViewMetadata</widget>
            </row>
            <row>
              <widget>infoViewWorkflow</widget>
            </row>
            <row>
              <widget>infoViewTags</widget>
            </row>
            <row>
              <widget>infoViewCollections</widget>
            </row>
            <row>
              <widget>infoViewComments</widget>
            </row>
          </rows>
          <widget name="infoViewInfoBox" type="container">
            <subWidgets>
              <widget name="infoBox" type="info_box"/>
            </subWidgets>
            <properties widgetMode="any">
              <property name="hideSubLabels">true</property>
            </properties>
            <controls mode="any">
              <control name="gridStyleClass">gridStyle12</control>
            </controls>
          </widget>
          <widget name="infoViewMetadata" type="container">
            <labels>
              <label mode="any">action.view.metadata</label>
            </labels>
            <translated>true</translated>
            <subWidgets>
              <widget name="metadata" type="documentLayout">
                <properties widgetMode="view">
                  <property name="mode">view</property>
                  <property name="documentMode">view</property>
                  <property name="includeAnyMode">false</property>
                </properties>
                <controls mode="any">
                  <control name="requireSurroundingForm">true</control>
                </controls>
              </widget>
            </subWidgets>
            <controls mode="any">
              <control name="handleLabels">true</control>
              <control name="gridStyleClass">gridStyle12</control>
            </controls>
            <properties widgetMode="any">
              <property name="hideSubLabels">true</property>
            </properties>
          </widget>
          <widget name="infoViewWorkflow" type="container">
            <labels>
              <label mode="any">label.document.routing.workflow</label>
            </labels>
            <translated>true</translated>
            <subWidgets>
              <widget name="workflow" type="summary_document_route">
                <controls mode="any">
                  <control name="requireSurroundingForm">true</control>
                </controls>
              </widget>
            </subWidgets>
            <controls mode="any">
              <control name="handleLabels">true</control>
              <control name="gridStyleClass">gridStyle12</control>
            </controls>
            <properties widgetMode="any">
              <property name="hideSubLabels">true</property>
            </properties>
            <widgetModes>
              <mode value="view">#{routingActions.filteredRouteModels.size() &gt; 0 ?
                'view' : 'hidden'}</mode>
            </widgetModes>
          </widget>
          <widget name="infoViewTags" type="container">
            <labels>
              <label mode="any">action.view.tagging</label>
            </labels>
            <translated>true</translated>
            <subWidgets>
              <widget name="tags" type="summary_current_document_tagging">
                <controls mode="any">
                  <control name="requireSurroundingForm">true</control>
                </controls>
                <properties widgetMode="any">
                  <property name="placeholder">
                    #{messages['label.add.tag.placeholder']}
                  </property>
                </properties>
              </widget>
            </subWidgets>
            <controls mode="any">
              <control name="handleLabels">true</control>
              <control name="gridStyleClass">gridStyle12</control>
            </controls>
            <properties widgetMode="any">
              <property name="hideSubLabels">true</property>
            </properties>
          </widget>
          <widget name="infoViewCollections" type="container">
            <labels>
              <label mode="any">label.collections</label>
            </labels>
            <translated>true</translated>
            <subWidgets>
              <widget name="collections" type="summary_current_document_collections"/>
            </subWidgets>
            <controls mode="any">
              <control name="handleLabels">true</control>
              <control name="gridStyleClass">gridStyle12</control>
            </controls>
            <properties widgetMode="any">
              <property name="hideSubLabels">true</property>
            </properties>
            <widgetModes>
              <mode value="view">#{collectionActions.hasCurrentDocumentVisibleCollection()
                ? 'view' : 'hidden'}</mode>
            </widgetModes>
          </widget>
          <widget name="infoViewComments" type="container">
            <labels>
              <label mode="any">#{nxu:translate('label.summary.comments',
                documentThreadedComments.size)}</label>
            </labels>
            <translated>false</translated>
            <subWidgets>
              <widget name="comments" type="summary_current_document_comments">
                <controls mode="any">
                  <control name="requireSurroundingForm">true</control>
                </controls>
              </widget>
            </subWidgets>
            <controls mode="any">
              <control name="handleLabels">true</control>
              <control name="gridStyleClass">gridStyle12</control>
            </controls>
            <properties widgetMode="any">
              <property name="hideSubLabels">true</property>
            </properties>
            <widgetModes>
              <mode value="view">#{documentThreadedComments.size() &gt; 0 ? 'view' :
                'hidden'}</mode>
            </widgetModes>
          </widget>
        </layout>
    
      </extension>
  • nuxeo-routing-default-jsf-2021.7.jar /OSGI-INF/extensions.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
        <layout name="Task2169@taskLayout">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml</template>
          </templates>
          <rows>
            <row>
              <properties mode="any">
                <property name="nxl_colspan_0">1</property>
              </properties>
              <widget>review_result</widget>
            </row>
            <row>
              <properties mode="any">
                <property name="nxl_colspan_0">1</property>
              </properties>
              <widget>comment</widget>
            </row>
          </rows>
          <widget name="review_result" type="htmltext">
            <labels>
              <label mode="any">wf.parallelDocumentReview.consolidate.form.review_brief</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['review_result']</field>
            </fields>
            <widgetModes>
              <mode value="edit">view</mode>
            </widgetModes>
          </widget>
          <widget name="comment" type="textarea">
            <labels>
              <label mode="any">wf.parallelDocumentReview.comment</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['comment']</field>
            </fields>
          </widget>
        </layout>
        <layout name="Task2556@taskLayout">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml</template>
          </templates>
          <rows>
            <row>
              <properties mode="any">
                <property name="nxl_colspan_0">1</property>
              </properties>
              <widget>participants</widget>
            </row>
            <row>
              <properties mode="any">
                <property name="nxl_colspan_0">1</property>
              </properties>
              <widget>comment</widget>
            </row>
            <row>
              <properties mode="any">
                <property name="nxl_colspan_0">1</property>
              </properties>
              <widget>end_date</widget>
            </row>
          </rows>
          <widget name="participants" type="multipleUsersSuggestion">
            <labels>
              <label mode="any">wf.parallelDocumentReview.ParticipantsOnTheReview</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['participants']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="width">70%</property>
              <property name="placeholder">label.security.search</property>
              <property name="prefixed">true</property>
              <property name="orderable">true</property>
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="comment" type="textarea">
            <labels>
              <label mode="any">wf.parallelDocumentReview.comment</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['comment']</field>
            </fields>
          </widget>
          <widget name="end_date" type="datetime">
            <labels>
              <label mode="any">wf.parallelDocumentReview.endDate</label>
            </labels>
            <helpLabels>
              <label mode="any">wf.parallelDocumentReview.endDate.help</label>
            </helpLabels>
            <translated>true</translated>
            <fields>
              <field>['end_date']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
        </layout>
        <layout name="Task328d@taskLayout">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml</template>
          </templates>
          <rows>
            <row>
              <properties mode="any">
                <property name="nxl_colspan_0">1</property>
              </properties>
              <widget>initiatorComment</widget>
            </row>
            <row>
              <properties mode="any">
                <property name="nxl_colspan_0">1</property>
              </properties>
              <widget>comment</widget>
            </row>
            <row>
              <properties mode="any">
                <property name="nxl_colspan_0">1</property>
              </properties>
              <widget/>
            </row>
            <row>
              <properties mode="any">
                <property name="nxl_colspan_0">1</property>
              </properties>
              <widget/>
            </row>
          </rows>
          <widget name="initiatorComment" type="textarea">
            <labels>
              <label mode="any">wf.parallelDocumentReview.initiatorComment</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['initiatorComment']</field>
            </fields>
            <widgetModes>
              <mode value="edit">view</mode>
            </widgetModes>
          </widget>
          <widget name="comment" type="textarea">
            <labels>
              <label mode="any">wf.parallelDocumentReview.reviewerComment</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['comment']</field>
            </fields>
          </widget>
        </layout>
        <layout name="Task38e@taskLayout">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml</template>
          </templates>
          <rows>
            <row>
              <properties mode="any">
                <property name="nxl_colspan_0">1</property>
              </properties>
              <widget>participants</widget>
            </row>
            <row>
              <properties mode="any">
                <property name="nxl_colspan_0">1</property>
              </properties>
              <widget>validationOrReview</widget>
            </row>
            <row>
              <properties mode="any">
                <property name="nxl_colspan_0">1</property>
              </properties>
              <widget>comment</widget>
            </row>
          </rows>
          <widget name="participants" type="multipleUsersSuggestion">
            <labels>
              <label mode="any">wf.serialDocumentReview.ParticipantsOnTheReview</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['participants']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="helpLabel">wf.serialDocumentReview.ParticipantsOnTheReview.order</property>
              <property name="prefixed">true</property>
              <property name="orderable">true</property>
              <property name="width">70%</property>
              <property name="placeholder">label.security.search</property>
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="validationOrReview" type="selectOneDirectory">
            <labels>
              <label mode="any">wf.serialDocumentReview.validationOrSimpleReview</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['validationOrReview']</field>
            </fields>
            <widgetModes>
              <mode value="edit">#{currentDocument. currentLifeCycleState =='project'?'edit':'hidden'}</mode>
            </widgetModes>
            <properties widgetMode="edit">
              <property name="localize">true</property>
              <property name="directoryName">WorkflowType</property>
              <property name="required">true</property>
            </properties>
            <properties widgetMode="view">
              <property name="directoryName">WorkflowType</property>
              <property name="localize">true</property>
            </properties>
          </widget>
          <widget name="comment" type="textarea">
            <labels>
              <label mode="any">wf.serialDocumentReview.comment</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['comment']</field>
            </fields>
          </widget>
        </layout>
        <layout name="Task542@taskLayout">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml</template>
          </templates>
          <rows>
            <row>
              <properties mode="any">
                <property name="nxl_colspan_0">1</property>
              </properties>
              <widget/>
            </row>
            <row>
              <properties mode="any">
                <property name="nxl_colspan_0">1</property>
              </properties>
              <widget/>
            </row>
            <row>
              <properties mode="any">
                <property name="nxl_colspan_0">1</property>
              </properties>
              <widget/>
            </row>
          </rows>
        </layout>
        <layout name="Task6d8@taskLayout">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml</template>
          </templates>
          <rows>
            <row>
              <properties mode="any">
                <property name="nxl_colspan_0">1</property>
              </properties>
              <widget>participants</widget>
            </row>
            <row>
              <properties mode="any">
                <property name="nxl_colspan_0">1</property>
              </properties>
              <widget>initiatorComment</widget>
            </row>
            <row>
              <properties mode="any">
                <property name="nxl_colspan_0">1</property>
              </properties>
              <widget>comment</widget>
            </row>
          </rows>
          <widget name="participants" type="multiplePrefixedUsersSuggestion">
            <labels>
              <label mode="any">wf.serialDocumentReview.ParticipantsOnTheReview</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['participants']</field>
            </fields>
            <widgetModes>
              <mode value="edit">view</mode>
            </widgetModes>
          </widget>
          <widget name="initiatorComment" type="textarea">
            <labels>
              <label mode="any">wf.serialDocumentReview.InitiatorComment</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['initiatorComment']</field>
            </fields>
            <widgetModes>
              <mode value="edit">view</mode>
            </widgetModes>
          </widget>
          <widget name="comment" type="textarea">
            <labels>
              <label mode="any">wf.serialDocumentReview.YourComment</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['comment']</field>
            </fields>
          </widget>
        </layout>
      </extension>
  • nuxeo-routing-web-2021.7.jar /OSGI-INF/document-routing-layouts-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
        <layout name="document_related_route">
          <templates>
            <template mode="any">/layouts/layout_summary_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>document_related_route</widget>
            </row>
          </rows>
        </layout>
        <layout name="document_routing_instance">
          <templates>
            <template mode="any">/layouts/layout_summary_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>participatingDocuments</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="step_folder">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>execution_type</widget>
            </row>
          </rows>
        </layout>
    
        <!--@deprecated since 5.9.2, use only routes of type 'graph'  -->
        <layout name="conditional_step_folder">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>conditional_step_value</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="summary_document_route_layout">
          <templates>
            <template mode="any">/layouts/layout_summary_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>summary_current_document_description</widget>
              <widget>summary_current_document_view</widget>
              <widget>summary_current_document_dublincore</widget>
            </row>
            <row>
              <widget>summary_current_document_lc_and_version</widget>
              <widget>summary_current_route_actions_lock</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="summary_document_route_action">
          <templates>
            <template mode="any">/layouts/layout_summary_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>summary_document_route_action</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="document_route_header">
          <!--@since 5.7.1 -->
          <templates>
            <template mode="any">/layouts/layout_div_template.xhtml</template>
          </templates>
          <rows>
            <row>
              <widget>header_title_and_permlink_localized</widget>
            </row>
            <row>
              <widget>header_description</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="document_route_models_listing_ajax">
          <!--@since 5.7.1 -->
          <templates>
            <template mode="any">
              /layouts/layout_listing_ajax_template.xhtml
            </template>
            <template mode="csv">
              /layouts/layout_listing_csv_template.xhtml
            </template>
            <template mode="pdf">
              /layouts/layout_listing_pdf_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="showListingHeader">true</property>
            <property name="showRowEvenOddClass">true</property>
            <property name="display">table</property>
          </properties>
          <columns>
            <column>
              <properties mode="any">
                <property name="isListingSelectionBoxWithCurrentDocument">
                  true
                </property>
                <property name="useFirstWidgetLabelAsColumnHeader">false</property>
                <property name="columnStyleClass">iconColumn</property>
              </properties>
              <properties mode="csv">
                <property name="isHidden">true</property>
              </properties>
              <properties mode="pdf">
                <property name="isHidden">true</property>
              </properties>
              <widget>listing_ajax_selection_box_with_current_document</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">false</property>
                <property name="columnStyleClass">iconColumn</property>
              </properties>
              <widget>listing_icon_type</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:title</property>
              </properties>
              <widget>listing_title_link_localized</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="columnStyleClass">iconColumn</property>
              </properties>
              <properties mode="csv">
                <property name="isHidden">true</property>
              </properties>
              <properties mode="pdf">
                <property name="isHidden">true</property>
              </properties>
              <widget>listing_lock_icon</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:modified</property>
              </properties>
              <widget>listing_modification_date</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:lastContributor</property>
              </properties>
              <widget>listing_last_contributor</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="columnStyleClass">iconColumn</property>
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="isSortable">false</property>
              </properties>
              <widget>listing_version</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">
                  ecm:currentLifeCycleState
                </property>
              </properties>
              <widget>listing_lifecycle</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="columnStyleClass">iconColumn</property>
              </properties>
              <properties mode="csv">
                <property name="isHidden">true</property>
              </properties>
              <properties mode="pdf">
                <property name="isHidden">true</property>
              </properties>
              <widget>listing_livedit_link</widget>
            </column>
          </columns>
        </layout>
      </extension>
  • nuxeo-routing-dashboard-2021.7.jar /OSGI-INF/document-routing-dashboard-layouts-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="routing_task_listing">
          <templates>
            <template mode="any">
              /layouts/layout_listing_ajax_template.xhtml
            </template>
            <template mode="csv">
              /layouts/layout_listing_csv_template.xhtml
            </template>
            <template mode="pdf">
              /layouts/layout_listing_pdf_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="showListingHeader">true</property>
            <property name="showRowEvenOddClass">true</property>
            <property name="display">table</property>
          </properties>
          <columns>
            <column>
              <properties mode="any">
                <property name="isListingSelectionBox">true</property>
                <property name="useFirstWidgetLabelAsColumnHeader">false</property>
                <property name="columnStyleClass">iconColumn</property>
              </properties>
              <properties mode="csv">
                <property name="isHidden">true</property>
              </properties>
              <properties mode="pdf">
                <property name="isHidden">true</property>
              </properties>
              <widget>listing_ajax_selection_box</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">nt:name</property>
              </properties>
              <widget>routing_task_name</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>routing_task_target_document</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">nt:directive</property>
              </properties>
              <widget>routing_task_directive</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">nt:dueDate</property>
              </properties>
              <widget>routing_task_duedate</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>routing_task_actors</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>routing_task_comments</widget>
            </column>
          </columns>
        </layout>
    
        <layout name="routing_user_open_task_listing">
          <templates>
            <template mode="any">
              /layouts/layout_listing_ajax_template.xhtml
            </template>
            <template mode="csv">
              /layouts/layout_listing_csv_template.xhtml
            </template>
            <template mode="pdf">
              /layouts/layout_listing_pdf_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="showListingHeader">true</property>
            <property name="showRowEvenOddClass">true</property>
            <property name="display">table</property>
          </properties>
          <columns>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">nt:name</property>
              </properties>
              <widget>routing_task_workflow_name</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>routing_task_name</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>routing_task_target_document</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">nt:directive</property>
              </properties>
              <widget>routing_task_directive</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">nt:dueDate</property>
              </properties>
              <widget>routing_task_duedate</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>routing_task_actors</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">false</property>
              </properties>
              <widget>routing_task_process_btn</widget>
            </column>
          </columns>
        </layout>
    
        <layout name="routing_user_open_task_search_layout">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <properties mode="any">
                <property name="nxl_colspan_0">1</property>
              </properties>
              <widget>task_name</widget>
            </row>
            <row>
              <properties mode="any">
                <property name="nxl_colspan_0">1</property>
                <property name="nxl_colspan_1">1</property>
              </properties>
              <widget>task_dueDate_min</widget>
              <widget>task_dueDate_max</widget>
            </row>
          </rows>
          <widget name="task_name" type="select2Widget">
            <labels>
              <label mode="any">label.workflow.task.name</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>user_open_tasks_cv:task_name</field>
            </fields>
            <properties mode="any">
              <property name="operationId">Context.GetTaskNames</property>
              <property name="minChars">0</property>
              <property name="idProperty">nt:name</property>
              <property name="initOperationId">Context.GetTaskNames</property>
              <property name="labelProperty">dc:title</property>
              <property name="documentSchemas">task,dublincore</property>
            </properties>
          </widget>
          <widget name="task_dueDate_min" type="datetime">
            <labels>
              <label mode="any">label.widget.task_step.dueDate</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>user_open_tasks_cv:task_dueDate_min</field>
            </fields>
          </widget>
          <widget name="task_dueDate_max" type="datetime">
            <labels>
              <label mode="any">label.search.and</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>user_open_tasks_cv:task_dueDate_max</field>
            </fields>
          </widget>
        </layout>
    
        <!--@since 5.8, layouts for task resolution screen on User home, applies
          to a Task object -->
        <layout name="routing_task_general_info">
          <templates>
            <template mode="any">
              /layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>task_workflow_name</widget>
            </row>
            <row>
              <widget>task_show_workflow_graph</widget>
            </row>
            <row>
              <widget>task_actors</widget>
            </row>
            <row>
              <widget>task_delegated_users</widget>
            </row>
            <row>
              <widget>task_duedate</widget>
            </row>
            <row>
              <widget>task_simple_directive</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="routing_task_actions_layout">
          <templates>
            <template mode="any">/layouts/layout_grid_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <properties mode="any">
                <property name="gridRowStyleClass">floatR</property>
              </properties>
              <widget>go_back_to_tasks_view_widget</widget>
              <widget>delegate_task_widget</widget>
              <widget>reassign_task_widget</widget>
            </row>
          </rows>
          <widget name="go_back_to_tasks_view_widget" type="documentActionWithForms">
            <fields>
              <field>#{routingTaskActions.getTaskInfo(layoutValue,
                true)}
              </field>
            </fields>
            <properties widgetMode="any">
              <property name="actionId">go_back_to_tasks_view</property>
              <property name="actionStyleClass">smallButton</property>
              <property name="actionsDisplay">buttons</property>
              <property name="useAjaxForm">true</property>
              <property name="ignoreTemplateProperty">true</property>
              <property name="actionContextDocument">#{layoutValue.getDocument()}
              </property>
            </properties>
          </widget>
          <widget name="reassign_task_widget" type="documentActionWithForms">
            <fields>
              <field>#{routingTaskActions.getTaskInfo(layoutValue,
                true)}
              </field>
            </fields>
            <properties widgetMode="any">
              <property name="actionId">reassignTask</property>
              <property name="actionStyleClass">smallButton</property>
              <property name="actionsDisplay">buttons</property>
              <property name="useAjaxForm">true</property>
              <property name="ignoreTemplateProperty">true</property>
              <property name="actionContextDocument">#{layoutValue.getDocument()}
              </property>
            </properties>
            <widgetModes>
              <mode value="any">#{routingTaskActions.canBeReassign()?'edit':'hidden'}
              </mode>
            </widgetModes>
          </widget>
          <widget name="delegate_task_widget" type="documentActionWithForms">
            <fields>
              <field>#{routingTaskActions.getTaskInfo(layoutValue,
                true)}
              </field>
            </fields>
            <properties widgetMode="any">
              <property name="actionId">delegateTask</property>
              <property name="actionStyleClass">smallButton</property>
              <property name="actionsDisplay">buttons</property>
              <property name="useAjaxForm">true</property>
              <property name="ignoreTemplateProperty">true</property>
              <property name="actionContextDocument">#{layoutValue.getDocument()}
              </property>
            </properties>
          </widget>
        </layout>
    
        <layout name="routing_task_resolution_layout">
          <templates>
            <template mode="any">/layouts/layout_grid_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <properties mode="any">
                <property name="nxl_gridStyleClass_0">gridStyle7</property>
                <property name="nxl_gridStyleClass_1">gridStyle5</property>
              </properties>
              <widget>container_0</widget>
              <widget>container_01</widget>
            </row>
            <row>
              <properties mode="any">
                <property name="nxl_gridStyleClass_0">gridStyle5</property>
                <property name="nxl_gridStyleClass_1">gridStyle7</property>
              </properties>
              <widget>container</widget>
              <widget>container_1</widget>
            </row>
            <row>
              <properties mode="any">
                <property name="nxl_gridStyleClass_0">gridStyle12</property>
              </properties>
              <widget>container_2</widget>
            </row>
          </rows>
          <widget name="container_0" type="container">
            <labels>
              <label mode="any"/>
            </labels>
            <translated>false</translated>
            <fields>
              <field/>
            </fields>
            <controls mode="any">
              <control name="handleLabels">true</control>
            </controls>
            <properties mode="any">
              <property name="hideSubLabels">true</property>
              <property name="styleClass">description_block</property>
            </properties>
            <subWidgetRefs>
              <widget>task_workflow_title</widget>
            </subWidgetRefs>
          </widget>
          <widget name="container_01" type="container">
            <labels>
              <label mode="any"/>
            </labels>
            <translated>false</translated>
            <fields>
              <field/>
            </fields>
            <controls mode="any">
              <control name="handleLabels">true</control>
            </controls>
            <properties mode="any">
              <property name="hideSubLabels">true</property>
              <property name="styleClass">horizontal_block</property>
            </properties>
            <subWidgets>
              <widget name="task_actions" type="layout">
                <properties mode="any">
                  <property name="name">routing_task_actions_layout
                  </property>
                </properties>
              </widget>
            </subWidgets>
          </widget>
          <widget name="container" type="container">
            <labels>
              <label mode="any"/>
            </labels>
            <translated>false</translated>
            <fields>
              <field/>
            </fields>
            <controls mode="any">
              <control name="handleLabels">true</control>
            </controls>
            <properties widgetMode="any">
              <property name="styleClass">fullWidth
              </property>
            </properties>
            <subWidgets>
              <widget name="sub0" type="layout">
                <labels>
                  <label mode="any">routing_task_general_info</label>
                </labels>
                <translated>false</translated>
                <fields/>
                <properties widgetMode="view">
                  <property name="name">routing_task_general_info
                  </property>
                </properties>
                <controls mode="any">
                  <control name="handleLabels">true</control>
                  <control name="requireSurroundingForm">true</control>
                </controls>
              </widget>
            </subWidgets>
          </widget>
          <widget name="container_1" type="container">
            <labels>
              <label mode="any"/>
            </labels>
            <translated>false</translated>
            <fields>
              <field/>
            </fields>
            <controls mode="any">
              <control name="handleLabels">true</control>
              <control name="requireSurroundingForm">true</control>
            </controls>
            <properties widgetMode="any">
              <property name="styleClass">grayBox</property>
              <property name="hideSubLabels">true</property>
            </properties>
            <subWidgetRefs>
              <widget>task_layout_with_actions</widget>
            </subWidgetRefs>
          </widget>
          <widget name="container_2" type="container">
            <labels>
              <label mode="any"/>
            </labels>
            <translated>false</translated>
            <fields>
              <field/>
            </fields>
            <controls mode="any">
              <control name="handleLabels">true</control>
            </controls>
            <subWidgets>
              <widget name="sub0" type="contentViewWithForms">
                <labels>
                  <label mode="any"/>
                </labels>
                <translated>false</translated>
                <properties widgetMode="view">
                  <property name="showRefreshCommand">false</property>
                  <property name="foldable">false</property>
                  <property name="showSyndicationLinks">false</property>
                  <property name="showPDFExport">false</property>
                  <property name="showCSVExport">false</property>
                  <property name="showPageSizeSelector">false</property>
                  <property name="showFilterForm">false</property>
                  <property name="contentViewName">task_target_documents</property>
                </properties>
                <controls mode="any">
                  <control name="handleLabels">true</control>
                </controls>
              </widget>
            </subWidgets>
          </widget>
        </layout>
    
        <layout name="task_related_documents_listing">
          <templates>
            <template mode="any">/layouts/layout_listing_template.xhtml
            </template>
            <template mode="csv">
              /layouts/layout_listing_csv_template.xhtml
            </template>
            <template mode="pdf">
              /layouts/layout_listing_pdf_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="showListingHeader">true</property>
            <property name="showRowEvenOddClass">true</property>
          </properties>
          <columns>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">false</property>
                <property name="columnStyleClass">iconColumn</property>
              </properties>
              <widget>listing_icon_type</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:title</property>
              </properties>
              <widget>listing_title_link</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="columnStyleClass">iconColumn</property>
              </properties>
              <properties mode="csv">
                <property name="isHidden">true</property>
              </properties>
              <properties mode="pdf">
                <property name="isHidden">true</property>
              </properties>
              <widget>listing_lock_icon</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:modified</property>
                <property name="defaultSortAscending">false</property>
              </properties>
              <widget>listing_modification_date</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:lastContributor</property>
              </properties>
              <widget>listing_last_contributor</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="columnStyleClass">iconColumn</property>
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="isSortable">false</property>
              </properties>
              <widget>listing_version</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">
                  ecm:currentLifeCycleState
                </property>
              </properties>
              <widget>listing_lifecycle</widget>
            </column>
          </columns>
        </layout>
    
      </extension>
  • nuxeo-routing-dm-2021.7.jar /OSGI-INF/dm-task-layouts-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
        <!-- @deprecated since 5.9.2 - Use only routes of type 'graph' -->
        <layout name="task_step">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>actors</widget>
            </row>
            <row>
              <widget>directive_task</widget>
            </row>
            <row>
              <widget>dueDate</widget>
            </row>
            <row>
              <widget>automaticValidation</widget>
            </row>
          </rows>
        </layout>
        <!-- @deprecated since 5.9.2 - Use only routes of type 'graph' -->
        <layout name="follow_lc_transition_task_step">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>actors</widget>
            </row>
            <row>
              <widget>directive_follow_lc_transion_task</widget>
            </row>
            <row>
              <widget>dueDate</widget>
            </row>
          </rows>
        </layout>
        <!-- @deprecated since 5.9.2 - Use only routes of type 'graph' -->
        <layout name="pusblishing_task_step">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>actors</widget>
            </row>
            <row>
              <widget>directive_publishing_task</widget>
            </row>
            <row>
              <widget>dueDate</widget>
            </row>
          </rows>
        </layout>
        <!-- @deprecated since 5.9.2 - Use only routes of type 'graph' -->
        <layout name="conditional_task_step">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>actors</widget>
            </row>
            <row>
              <widget>directive_conditional_subject</widget>
              <widget>directive_conditional_operator</widget>
              <widget>directive_conditional_value</widget>
              <widget>operatorValidator</widget>
            </row>
            <row>
              <widget>dueDate</widget>
            </row>
          </rows>
          <widget name="directive_conditional_subject" type="text">
            <fields>
              <field>ctkst:subject</field>
            </fields>
            <labels>
              <label mode="any">label.review.directive</label>
            </labels>
            <translated>true</translated>
            <properties widgetMode="edit">
              <property name="required">true</property>
              <property name="validator">
                #{routingTaskActions.validateSubject}
              </property>
            </properties>
          </widget>
          <widget name="directive_conditional_operator" type="template">
            <labels>
              <label mode="any"/>
            </labels>
            <fields>
              <field>ctkst:operator</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /widgets/routing_directive_operator_widget_template.xhtml
              </property>
            </properties>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="directive_conditional_value" type="text">
            <labels>
              <label mode="any"/>
            </labels>
            <fields>
              <field>ctkst:value</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="operatorValidator" type="template">
            <fields>
              <field/>
            </fields>
            <labels>
              <label mode="any"/>
            </labels>
            <properties widgetMode="edit">
              <property name="validator">
                #{routingTaskActions.validateValueForOperator}
              </property>
              <property name="template">
                /widgets/operator_value_validation_widget_template.xhtml
              </property>
            </properties>
          </widget>
        </layout>
    
      </extension>
  • nuxeo-routing-web-2021.7.jar /OSGI-INF/document-routing-table-layouts-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="document_routing_route_content">
          <templates>
            <template mode="any">
              /layouts/layout_route_listing_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="showListingHeader">true</property>
            <property name="showRowEvenOddClass">true</property>
            <property name="showRouteLokingInfo">false</property>
          </properties>
          <columns>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>dr_listing_document_route_folder_element_type</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>dr_listing_title_link</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>dr_listing_document_route_element_type</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>dr_listing_route_element_state</widget>
            </column>
          </columns>
        </layout>
    
        <!-- @deprecated since 5.9.2-->
        <layout name="pdf_document_routing_route_content">
          <templates>
            <template mode="any">
              /layouts/pdf_layout_listing_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="showListingHeader">true</property>
            <property name="showRowEvenOddClass">true</property>
            <property name="showRouteLokingInfo">true</property>
          </properties>
          <columns>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>dr_listing_document_route_element_type</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>dr_listing_title</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>dr_listing_title_description</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>dr_listing_current_lifecycle</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>dr_listing_no_comments</widget>
            </column>
          </columns>
        </layout>
    
      </extension>
  • nuxeo-routing-web-2021.7.jar /OSGI-INF/layouts-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="current_route_layout">
          <templates>
            <template mode="any">
              /layouts/layout_grid_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <properties mode="any">
                <property name="nxl_gridStyleClass_0">gridStyle12</property>
                <property name="nxl_gridStyleClass_1">gridStyle7</property>
                <property name="nxl_gridStyleClass_2">gridStyle5</property>
                <property name="nxl_gridStyleClass_3">gridStyle12</property>
              </properties>
              <widget>current_route_panel_top</widget>
              <widget>current_route_panel_left</widget>
              <widget>current_route_panel_right</widget>
              <widget>current_route_panel_bottom</widget>
            </row>
          </rows>
        </layout>
    
        <!-- Route tasks content view layout -->
        <layout name="route_content_view_layout">
          <templates>
            <template mode="any">
              /layouts/layout_listing_ajax_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="showListingHeader">true</property>
            <property name="showRowEvenOddClass">true</property>
          </properties>
          <columns>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>task_title</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>task_assignee</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>task_directive</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>task_comments</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>task_start_date</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>task_due_date</widget>
            </column>
          </columns>
        </layout>
    
        <!-- Past routes layout -->
        <layout name="previousRoutesLayout">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>previousRoutesContentView</widget>
            </row>
          </rows>
          <widget name="previousRoutesContentView" type="contentViewWithForms">
            <labels>
              <label mode="any"/>
            </labels>
            <translated>false</translated>
            <properties widgetMode="any">
              <property name="contentViewName">previous_routes</property>
              <property name="foldable">false</property>
            </properties>
          </widget>
        </layout>
    
        <layout name="graphViewLayout">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>current_route_show_graph</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="task_additional_actions_layout">
          <templates>
            <template mode="any">
              /layouts/layout_div_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>reassign_task_widget</widget>
              <widget>delegate_task_widget</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="task_layout">
          <templates>
            <template mode="any">
              /layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>task_workflow_name</widget>
            </row>
            <row>
              <widget>task_actors</widget>
            </row>
            <row>
              <widget>task_delegated_users</widget>
            </row>
            <row>
              <widget>task_duedate</widget>
            </row>
            <row>
              <widget>task_simple_directive</widget>
            </row>
            <row>
              <widget>container_for_task_layout_with_actions</widget>
            </row>
          </rows>
          <widget name="container_for_task_layout_with_actions" type="container">
            <labels>
              <label mode="any"/>
            </labels>
            <controls mode="any">
              <control name="handleLabels">true</control>
            </controls>
            <properties mode="any">
              <property name="hideSubLabels">true</property>
            </properties>
            <subWidgetRefs>
              <widget>task_layout_with_actions</widget>
            </subWidgetRefs>
          </widget>
        </layout>
    
        <layout name="workflowTaskReassignmentLayout">
          <!--applies to a TaskInfo -->
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>task_reassignment_actors</widget>
            </row>
            <row>
              <widget>task_reassignment_comment</widget>
            </row>
          </rows>
          <widget name="task_reassignment_actors" type="multipleUsersSuggestion">
            <labels>
              <label mode="any">label.workflow.task.actors</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>actors</field>
            </fields>
            <properties mode="any">
              <property name="required">true</property>
              <property name="prefixed">true</property>
            </properties>
          </widget>
          <widget name="task_reassignment_comment" type="textarea">
            <labels>
              <label mode="any">label.workflow.task.comment</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>comment</field>
            </fields>
          </widget>
        </layout>
    
        <layout name="userOpenTasksLayout">
          <templates>
            <template mode="any">
              /layouts/layout_div_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>current_user_open_tasks</widget>
            </row>
          </rows>
          <widget name="current_user_open_tasks" type="contentViewWithForms">
            <labels>
              <label mode="any"/>
            </labels>
            <translated>false</translated>
            <controls mode="any">
              <control name="handleLabels">true</control>
            </controls>
            <properties widgetMode="any">
              <property name="contentViewName">user_open_tasks</property>
            </properties>
          </widget>
        </layout>
      </extension>
  • nuxeo-search-ui-2021.7.jar /OSGI-INF/search-contentviews-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="content_view_display">
          <templates>
            <template mode="any">
              /layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>content_view_selected_columns</widget>
            </row>
            <row>
              <widget>content_view_sort_infos</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="default_search_layout">
          <templates>
            <template mode="any">
              /layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>default_text_search</widget>
            </row>
            <row>
              <widget>default_tags_search</widget>
            </row>
            <row>
              <widget>default_modified_search</widget>
            </row>
            <row>
              <widget>default_creator_search</widget>
            </row>
            <row>
              <widget>default_collection_search</widget>
            </row>
            <row>
              <widget>default_nature_search</widget>
            </row>
            <row>
              <widget>default_subjects_search</widget>
            </row>
            <row>
              <widget>default_coverage_search</widget>
            </row>
            <row>
              <widget>default_size_search</widget>
            </row>
            <row>
              <widget>default_location_search</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="simple_search_layout">
          <templates>
            <template mode="any">
              /layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>default_text_search</widget>
            </row>
          </rows>
        </layout>
    
      </extension>
  • nuxeo-search-ui-2021.7.jar /OSGI-INF/search-layouts-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="gridSearchLayout">
          <templates>
            <template mode="any">
              /layouts/layout_grid_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>searchPanelLeft</widget>
              <widget>searchPanelRight</widget>
            </row>
          </rows>
        </layout>
    
      </extension>
  • nuxeo-search-ui-2021.7.jar /OSGI-INF/search-local-configuration-layouts-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="search_configuration">
          <templates>
            <template mode="any">
              /layouts/layout_local_configuration_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="layoutTemplateToInclude">/layouts/layout_default_template.xhtml</property>
            <property name="foldableBoxLabel">label.search.local.configuration.content.view.selection</property>
            <property name="localConfigurationFacet">SearchConfiguration</property>
            <property name="helpLabel">label.search.local.configuration.content.view.selection.info</property>
          </properties>
          <rows>
            <row>
              <widget>search_content_views_selection</widget>
            </row>
          </rows>
        </layout>
    
      </extension>
  • nuxeo-user-dashboard-jsf-2021.7.jar /OSGI-INF/layouts-listing-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="dashboard_document_listing">
          <templates>
            <template mode="any">
              /layouts/layout_listing_ajax_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="showListingHeader">true</property>
            <property name="showRowEvenOddClass">true</property>
          </properties>
          <columns>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">false</property>
                <property name="columnStyleClass">iconColumn</property>
              </properties>
              <widget>listing_icon_type</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>listing_title_link</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="columnStyleClass">iconColumn</property>
              </properties>
              <widget>listing_lock_icon</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>listing_modification_date</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>listing_last_contributor</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="columnStyleClass">iconColumn</property>
              </properties>
              <widget>listing_livedit_link</widget>
            </column>
          </columns>
        </layout>
    
        <layout name="dashboard_published_documents_listing">
          <templates>
            <template mode="any">
              /layouts/layout_listing_ajax_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="showListingHeader">true</property>
            <property name="showRowEvenOddClass">true</property>
          </properties>
          <columns>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">false</property>
                <property name="columnStyleClass">iconColumn</property>
              </properties>
              <widget>listing_icon_type</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>listing_title_link</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="columnStyleClass">iconColumn</property>
              </properties>
              <widget>listing_lock_icon</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>listing_issued_date</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>listing_last_contributor</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="columnStyleClass">iconColumn</property>
              </properties>
              <widget>listing_livedit_link</widget>
            </column>
          </columns>
        </layout>
    
        <layout name="dashboard_task_listing">
          <templates>
            <template mode="any">
              /layouts/layout_listing_ajax_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="showListingHeader">true</property>
            <property name="showRowEvenOddClass">true</property>
          </properties>
          <columns>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>listing_task_name</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>listing_task_document_title_link</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>listing_task_directive</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>listing_task_dueDate</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>listing_task_startDate</widget>
            </column>
          </columns>
        </layout>
    
        <layout name="dashboard_process_listing">
          <templates>
            <template mode="any">
              /layouts/layout_listing_ajax_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="showListingHeader">true</property>
            <property name="showRowEvenOddClass">true</property>
          </properties>
          <columns>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>listing_process_name</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>listing_process_document_title_link</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>listing_process_startDate</widget>
            </column>
          </columns>
        </layout>
    
      </extension>
  • nuxeo-user-dashboard-jsf-2021.7.jar /OSGI-INF/layouts-dashboard-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="grid_dashboard_layout">
          <templates>
            <template mode="any">
              /layouts/layout_grid_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>dashboard_left</widget>
              <widget>dashboard_right</widget>
            </row>
          </rows>
        </layout>
    
      </extension>
  • nuxeo-user-oauth-2021.7.jar /OSGI-INF/oauth-layouts-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <layout name="oAuth2AuthorizedApplications">
          <templates>
            <template mode="any">
              /layouts/layout_authorized_applications_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>oAuth2ApplicationName</widget>
            </row>
            <row>
              <widget>oAuth2ApplicationAuthorizationDate</widget>
            </row>
          </rows>
    
          <widget name="oAuth2ApplicationName" type="text">
            <labels>
              <label mode="any">label.oauth2.authorizedApp.name</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>applicationName</field>
            </fields>
          </widget>
    
          <widget name="oAuth2ApplicationAuthorizationDate" type="datetime">
            <labels>
              <label mode="any">label.oauth2.authorizedApp.authorizationDate</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>applicationAuthorizationDate</field>
            </fields>
          </widget>
        </layout>
    
        <layout name="oAuthAuthorizedApplications">
          <templates>
            <template mode="any">
              /layouts/layout_authorized_applications_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>appId</widget>
            </row>
            <row>
              <widget>creationDate</widget>
            </row>
            <row>
              <widget>duration</widget>
            </row>
          </rows>
    
          <widget name="appId" type="text">
            <labels>
              <label mode="any">AppId (Gadget) </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.appId</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.appId
              </property>
            </properties>
          </widget>
    
          <widget name="creationDate" type="datetime">
            <labels>
              <label mode="any">Creation Date </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.creationDate</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.creationDate
              </property>
            </properties>
          </widget>
    
          <widget name="duration" type="int">
            <labels>
              <label mode="any">Duration (in minutes)</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauthToken.durationInMinutes</field>
            </fields>
            <properties mode="any">
              <property name="help">
              label.oauth.help.durationInMinutes
              </property>
            </properties>
          </widget>
        </layout>
    
        <layout name="oauth2ProviderTokenLayoutUserDashboard">
          <templates>
            <template mode="any">
              /directory/directoryOAuth_layout_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>id</widget>
            </row>
            <row>
              <widget>serviceName</widget>
            </row>
            <row>
              <widget>serviceLogin</widget>
            </row>
            <row>
              <widget>creationDate</widget>
            </row>
            <row>
              <widget>isShared</widget>
            </row>
            <row>
              <widget>sharedWith</widget>
            </row>
          </rows>
    
          <widget name="id" type="text">
            <labels>
              <label mode="any">label.oauth.token.id</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Token.id</field>
            </fields>
            <widgetModes>
              <mode value="edit">hidden</mode>
            </widgetModes>
          </widget>
          <widget name="serviceName" type="text">
            <labels>
              <label mode="any">label.oauth.token.serviceName</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Token.serviceName</field>
            </fields>
          </widget>
          <widget name="serviceLogin" type="text">
            <labels>
              <label mode="any">label.oauth.token.serviceLogin</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Token.serviceLogin</field>
            </fields>
          </widget>
          <widget name="creationDate" type="datetime">
            <labels>
              <label mode="any">label.oauth.token.creationDate</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Token.creationDate</field>
            </fields>
          </widget>
          <widget name="isShared" type="checkbox">
            <labels>
              <label mode="any">label.oauth.token.isShared</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>oauth2Token.isShared</field>
            </fields>
          </widget>
          <widget name="sharedWith" type="multipleUsersSuggestion">
            <labels>
              <label mode="any">label.oauth.token.sharedWith</label>
            </labels>
            <fields>
              <field>#{oauthUserTokens.sharedWith}</field>
            </fields>
            <properties widgetMode="edit">
              <property name="prefixed">true</property>
              <property name="minChars">3</property>
              <property name="hideHelpLabel">false</property>
            </properties>
            <widgetModes>
              <mode value="view_list">hidden</mode>
              <mode value="view_list_and_header">hidden</mode>
            </widgetModes>
          </widget>
        </layout>
      </extension>
  • nuxeo-user-profile-jsf-2021.7.jar /OSGI-INF/layouts-contrib.xml
    <extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">
    
        <!-- deprecated since 5.9.2, use a grid layout now -->
        <layout name="summary_user_profile_layout">
          <templates>
            <template mode="any">/layouts/layout_summary_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>summary_user_profile</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="userprofile">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>avatar</widget>
            </row>
            <row>
              <widget>birthdate</widget>
            </row>
            <row>
              <widget>phonenumber</widget>
            </row>
            <row>
              <widget>gender</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="summary_user_preferences_layout">
          <templates>
            <template mode="any">/layouts/layout_summary_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>summary_user_preferences</widget>
            </row>
          </rows>
        </layout>
    
        <layout name="userpreferences">
          <templates>
            <template mode="any">/layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>locale_view</widget>
            </row>
            <row>
              <widget>locale</widget>
            </row>
            <row>
              <widget>timezone</widget>
            </row>
          </rows>
        </layout>
    
      </extension>